2016-03-04 62 views
0

我一直在做一個完美的項目,直到我包含android-smack-xmpp庫。Android構建變體調試給出java.lang.NoClassDefFoundError

在此包含之後,我無法在調試模式下在設備上運行應用程序(API < 21)。不過,我可以在發佈版本上運行它。

               Process: com.example, PID: 496 


                  java.lang.NoClassDefFoundError: com.example.network.ServerCalls$3 
                   at com.example.network.ServerCalls.initData(ServerCalls.java:167) 
                   at com.example.ui.fragmentsAndActivities.homeFeed.HomePageActivity.onCreate(HomePageActivity.java:212) 
                   at android.app.Activity.performCreate(Activity.java:5248) 
                   at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1110) 
                   at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2162) 
                   at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2257) 
                   at android.app.ActivityThread.access$800(ActivityThread.java:139) 
                   at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1210) 
                   at android.os.Handler.dispatchMessage(Handler.java:102) 
                   at android.os.Looper.loop(Looper.java:136) 
                   at android.app.ActivityThread.main(ActivityThread.java:5086) 
                   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) 

ServerCalls包含在HomePageActivity中,編譯工作得很好。我在這裏可能會錯過什麼?

而且HomePageActivity.java:212是:

ServerCalls.samosaInitData() 

編輯:我已經能夠得到它的工作我的gradle中的調試版本設置minifyEnabledshrinkResourcestrue。這可能指向JVM中不正確的鏈接。但是這對我來說看起來像一個黑客。有人能指點我一個更乾淨的方式嗎?

回答

0

錯誤是多方面的解決方案。 smack-api庫引入導致超過64k的dex限制。 Multidexing解決方案的竅門。

0

看起來您不會將庫導出到最終的.apk文件中。

enter image description here

你必須選擇在相關內容部分的Android Studio項目設置的編譯選項。

+0

我已經設置了smack API設置爲編譯。儘管如此,類「ServerCalls」仍在主項目中。 –

相關問題