java - Android 构建变体调试给出 java.lang.NoClassDefFoundError

标签 java android smack

我一直在致力于一个非常好的项目,直到我添加了 android-smack-xmpp 库。

包含此内容后,我无法在 Debug模式下在设备(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 中将 minifyEnabledshr​​inkResources 设置为 true 以进行调试构建。这可能表明 JVM 中的链接不正确。但这对我来说看起来像是一个黑客。有人可以告诉我一种更简洁的方法吗?

最佳答案

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

关于java - Android 构建变体调试给出 java.lang.NoClassDefFoundError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35791601/

相关文章:

java - 无法通过 Smack API 使用 openfire 服务器发送/接收消息

java - 如何从代码动态地为 Java RMI 设置 SSL?

java - 即使更改 URL 后,Tomcat 仍会继续重定向到 servlet I

java - IntialContext 实例化失败

android - Java 到安卓?

xmpp - 如何在 Smack 中使用 XMPP XEP-0184 "Message Delivery Receipts"?

java - 无法在 Apache POI 3.5 .jar 中引用 XSSF

android - Android Studio新建项目后报错

java - 由于 ResourceCycle 错误,无法在 Android Studio 中生成 apk 文件

android - 如何在android中发送smack中的音频文件