java - Android 无法在 main-dex 文件中容纳请求的类

标签 java android proguard android-multidex

请帮助我不要发疯

我构建了一个 android 项目,它显示错误 NoClassDefFoundError

我在 Multi-dex-config.pro 文件中添加了以下几行。

keep class com.google.firebase.**{*;}
keep class com.google.android.gms.** { *; }
keep class com.ustaadthehandyman.user.activities**{*;}</i>

再次构建后,显示错误 Cannot fit requests in the main-dex file (#methods: 67808 > 65536)

编辑Multi-dex-config.pro文件后如下

keep class com.google.firebase.provider**{*;}
keep class com.google.android.gms.provider** { *; }
keep class com.ustaadthehandyman.user.activities**{*;}</i>

它在另一个类中显示另一个错误NoClassDefFoundError

I 是任何将所需类放入主 dex 文件中的自动化方法。

请帮助我

提前谢谢您。

最佳答案

我认为您将 Proguard/R8(例如缩小)与 multidex 混淆了。最好使用后者,并禁用 Proguard 缩小(更难做到正确)。

参见Enable multidex for apps with over 64K methods在 Android 文档站点中。

具体来说,如果您的 minSdkVersion 为 21+,请添加以下内容:

android {
    defaultConfig {
        ...
        multiDexEnabled true
    }
    ...
}

如果您的应用低于 API 21,请参阅链接页面以获取更多信息。

关于java - Android 无法在 main-dex 文件中容纳请求的类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56075698/

相关文章:

android - ProGuard,我收到错误

java - 如何实现java应用程序和shell脚本之间的同步?

java - LIBGDX 平铺 map 不使用透明度

c# - 在Unity3d中使用Android陀螺仪,如何将初始相机旋转设置为初始移动设备旋转?

android - 使用 OpenGL 更快的相机预览?

java - 使用 ProGuard 和 Maven 混淆 Java 代码 : Test classes and ClassNotFoundError

java - Maven、Proguard 和装配问题

java - 我们如何更改 HashMap 的值或键?

在 tomcat 服务器上导入 72MB XAR 文件时出现 java 堆内存不足错误?

android - 在安卓手机上实时进行语音处理