2016-10-24 39 views
0

我有一些庫,它們是aar文件。將根gradle classpath 2.1.0更改爲2.2.1後,我得到NoClassDefFoundError錯誤。將Gradle 2.1.0更新到2.2.1後的NoClassDefFoundError

例如:我在我的aar庫中創建一個新的類後,我同步和我的主應用程序看到我的類,但是當我運行應用程序,在運行時,它給了我NoClassDefFoundError。

ps:更新後,gradle下載2.14.1。

threadid=1: thread exiting with uncaught exception (group=0xa4ca8b20) 
: java.lang.NoClassDefFoundError: com.gk.lib.ui.Utils 
:  at com.example.activities.MainActivity.onCreate(MainActivity.java:78) 
:  at android.app.Activity.performCreate(Activity.java:5231) 
:  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087) 
:  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2148) 
:  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2233) 
:  at android.app.ActivityThread.access$800(ActivityThread.java:135) 
:  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196) 
:  at android.os.Handler.dispatchMessage(Handler.java:102) 
:  at android.os.Looper.loop(Looper.java:136) 
:  at android.app.ActivityThread.main(ActivityThread.java:5001) 
:  at java.lang.reflect.Method.invokeNative(Native Method) 
:  at java.lang.reflect.Method.invoke(Method.java:515) 
:  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785) 
:  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601) 
:  at dalvik.system.NativeStart.main(Native Method) 

在我的MainActivity類別我調用方法與靜態方法類似:

Utils.gkTestMethod(); 

我的utils的類別:

import android.util.Log; 

public class Utils { 

    public static void gkTestMethod(){ 
     Log.v("Log","Log"); 
    } 
} 

什麼並不重要是我所謂的類。如果我創建新的類,它會給出這個錯誤。

謝謝。

+0

添加完整的堆棧跟蹤 – Jens

+0

我更新了我的問題。你可以看到。@ Jens –

+0

你的MainActivity.java文件第78行是什麼? –

回答

0

關於這個片段在主build.gradle

dependencies { 

    compile('com.gk.lib:common:1.0.0') { 
     transitive = true 
    } 

    compile('com.gk.lib:ui:1.0.0') { 
     transitive = true 
     exclude module: 'common' 
    } 

    compile('com.gk.lib:components:1.0.0') { 
     transitive = true 
     exclude module: 'common' 
     exclude module: 'ui' 
    } 

    // Other dependencies 
} 

似乎components取決於commonui,並ui取決於common。明確排除並重新包含傳遞依賴關係是否有很好的理由?我認爲這應該工作:

dependencies { 

    compile 'com.gk.lib:components:1.0.0' 

    // Other dependencies 
} 

和IIRC common是不可傳遞的。

+0

我沒有進行編譯調試並釋放通用依賴。我改變了我的帖子,你可以看到新的版本。我劃分了共同的依賴關係,因爲我需要在調試或發佈時包含一些c文件,這些都是不同的。 –

+0

@GörkemKaradoğan請添加每個庫的完整和未修改的'build.gradle' – nandsito

+0

我改變了我的帖子,因爲我說所有庫gradle都是類似的。 –

相關問題