Android 无法在 main-dex 文件中放置请求的类
Posted
技术标签:
【中文标题】Android 无法在 main-dex 文件中放置请求的类【英文标题】:Android can not fit requested classes in the main-dex file 【发布时间】:2019-09-28 06:01:08 【问题描述】:请帮助不要发疯
我构建了一个 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 requested classes 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 文件的任何自动化方式。
请帮帮我
提前谢谢你。
【问题讨论】:
【参考方案1】:我认为您将 Proguard/R8(例如缩小)与 multidex 混淆了。最好使用后者,并禁用 Proguard 缩小(更难做到正确)。
请参阅 Android 文档站点中的 Enable multidex for apps with over 64K methods。
具体来说,如果您的 minSdkVersion
是 21+,请添加以下内容:
android
defaultConfig
...
multiDexEnabled true
...
如果您的应用低于 API 21,请参阅链接页面了解更多信息。
【讨论】:
然后删除缩小minifyEnabled false
。这应该可以解决您的问题。以上是关于Android 无法在 main-dex 文件中放置请求的类的主要内容,如果未能解决你的问题,请参考以下文章
无法在 android 中使用 setKeyListener
Android:在 onBindViewHolder 中放置 setOnclickListener 或 setOnLongClickListener 是不是正确?