Android build variant debug提供了java.lang.NoClassDefFoundError

时间:2016-03-04 08:48:26

标签: java android smack

我一直在做一个非常好的项目,直到我加入了android-smack-xmpp库。

在此包含之后,我无法在调试模式下在设备(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中将我的设置minifyEnabledshrinkResources设置为true以进行调试构建。这可能指向JVM中的不正确链接。但这看起来像是对我的黑客攻击。有人能指出一种更清洁的做法吗?

2 个答案:

答案 0 :(得分:0)

看起来您不会在最终的.apk文件中导出您的库。

enter image description here

您必须在“依赖关系”部分的Android Studio项目设置中选择“编译”选项。

答案 1 :(得分:0)

错误是多解决方案。 smack-api库的引入导致超出64k dex限制。 对解决方案进行多索引就可以了。

相关问题