![](/img/trans.png)
[英]Execution failed for task :app:transformClassesWithMultidexlistForDebug'. React Native
[英]Execution failed for task ':app:transformDexArchiveWithDexMergerForDebug'. - React Native
我有用 react-native 编写的应用程序,它以前工作得很好但是当我安装RN async-storage时。 我不更改本机 android 代码中的任何内容
运行应用程序时出现错误。
我正在尝试删除它并重建我的应用程序,但问题仍然存在,我不知道为什么!
我试图运行这些命令
rm -rf node_modules
npm install
然后
cd android && gradlew clean
并且它正在成功构建而没有任何错误
但在运行react-native run-android
之后
我有
出了什么问题:任务 ':app:transformDexArchiveWithDexMergerForDebug' 执行失败。 com.android.build.api.transform.TransformException: java.lang.RuntimeException: java.lang.RuntimeException: com.android.builder.dexing.DexArchiveMergerException: Error while merging dex archives: The number of method references in a.dex 文件不能超过 64K。 在https://developer.android.com/tools/building/multidex.html了解如何解决此问题
那么我该如何解决呢?
所以这是解决方案。
首先,让我们解决 multiDex 问题。在您的myapp/android/app/build.gradle
文件中,查找 android 和 defaultConfig 中的代码块,然后添加multiDexEnabled true
行,如下所示:
android {
...
compileOptions {
...
}
defaultConfig {
applicationId "com.myapp"
minSdkVersion rootProject.ext.minSdkVersion
targetSdkVersion rootProject.ext.targetSdkVersion
versionCode 1
versionName "1.0"
multiDexEnabled true //ADD THIS LINE 'multiDexEnabled true' Inside the defaultConfig code block
}
}
其次,清除 npm 的有效方法是先删除 node_modules 文件夹,然后运行命令npm i
然后npm start --reset-cache
第三,使 gradlew 干净的有效方法是运行此命令cd android
然后gradlew clean
运行这些步骤后,您应该可以开始了。 祝一切顺利。
卸载 npm 包的正确方法是
npm uninstall <name> --save
如果你简单地删除node_modules
,它不会从package.json
文件中删除,当你再次执行 npm install 时,如果没有从package.json
文件中删除,将安装包moe detail here在错误日志的最后一行中提到它
.dex 文件中的方法引用数不能超过 64K。 了解如何解决此问题以修复此错误您可能需要启用此处提到的 multidex
可能是 minSdkVersion 的问题。 在目录中尝试 minSdkVersion = 21。 安卓/build.gradle。
按照这个答案-
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.