簡體   English   中英

適用於Unity的Android插件中的NoClassDefFoundError

[英]NoClassDefFoundError in Android Plugin for Unity

我正在為Unity游戲開發Android插件。 我的插件應為我的應用返回GCM令牌。 我的gradle文件如下所示:

apply plugin: 'com.android.library'
apply plugin: 'com.google.gms.google-services'

android {
    compileSdkVersion 23
    buildToolsVersion "23.0.0"

    defaultConfig {
        //applicationId "testproject.com.pushtoken"
        minSdkVersion 15
        targetSdkVersion 23
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
    lintOptions {
        abortOnError false
    }
    sourceSets {
        main {
            java {
                srcDir 'src/main/java'
            }
            //resources {
            //    srcDir 'libs'
            //}
        }
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:appcompat-v7:23.0.0'
    compile 'com.google.android.gms:play-services:8.3.0'
    compile files('libs/classes.jar')
}

task clearJar(type: Delete) {
    delete 'libs/pluginLibrary7.jar'
}

task makeJar(type: Copy) {
    from('build/intermediates/bundles/release/')
    into('plugins/')
    include('classes.jar')
    rename ('classes.jar', 'pluginLibrary7.jar')
}

makeJar.dependsOn(clearJar, build)

插件包含用於測試其功能的簡單方法(例如return int值),當然,它具有獲取gcm令牌的方法。 問題是當我嘗試啟動該方法以接收gcm令牌時,出現此錯誤:

AndroidJavaException: java.lang.NoClassDefFoundError: com.google.android.gms.iid.InstanceID

我知道問題是我的.jar庫沒有gms庫。 但是我應該如何將其包括到我的.jar文件中?

看來我知道了問題所在。 發生此錯誤的原因是我的庫未正確打包。 我的意思是,庫似乎已經具備了所有需要的外部庫,但是當我打開.jar文件查看其中的內容時,我發現它只有用於外部庫的文件夾,這些文件夾完全是空的。

我的修復非常簡單。 我打開了我的.jar庫,並在其中放置了必要的外部庫。 之后,我從更新的程序包中創建了新的.jar,它可以工作了。

對於有一些人選擇我解決此問題的方式,我有一些建議。 我在工作中使用的是Macbook,並且在編輯.jar文件時遇到了很多困難,因為每當通過標准實用程序創建新的.jar文件時,它就無法在Unity中使用。 因此,我在第二台Windows PC上使用WinRAR來制作.jar,然后所有東西開始工作。

我希望我的提示對某人有幫助。 PS:對不起,我英語不好。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM