我有用React-native编写的App,以前但工作正常,但安装了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:时出错 合并dex档案:.dex中方法引用的数量 文件不能超过64K。了解如何解决此问题,网址为: https://developer.android.com/tools/building/multidex.html
那我该如何解决呢?
答案 0 :(得分:1)
这是解决方案。
首先,让我们解决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
运行这些步骤之后,您应该会很好。 一切顺利。
答案 1 :(得分:0)
卸载npm软件包的正确方法是
npm uninstall <name> --save
如果您只是删除node_modules
,它将不会从package.json
文件中删除,如果您再次执行npm安装,则如果未从package.json
文件{{3} }
在错误日志的最后一行中,其提及为
.dex文件中方法引用的数量不能超过64K。要了解如何解决此问题,请访问,以解决您的问题moe detail here
答案 2 :(得分:0)
可能是 minSdkVersion 的问题。在目录中尝试 minSdkVersion = 21。 android/build.gradle。
按照这个答案-