Android Studio 执行任务“:app:transformDexArchiveWithDexMergerForDebug”失败,- React Native

xxls0lw8  于 2023-06-24  发布在  Android
关注(0)|答案(3)|浏览(107)

我有一个用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. DexArchiveMergeException:合并dex存档时出错:. dex文件中的方法引用数不能超过64K。了解如何在https://developer.android.com/tools/building/multidex.html上解决此问题
那我该怎么解决呢?

7lrncoxx

7lrncoxx1#

这就是解决方案。
首先,让我们解决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 .
完成这些步骤后,您应该可以开始了。祝你好运

6ie5vjzr

6ie5vjzr2#

卸载npm包的正确方法是
npm uninstall <name> --save
如果你只是简单地删除node_modules,它不会从package.json文件中删除,当你再次进行npm安装时,如果没有从package.json文件中删除,软件包将被安装moe detail here在错误日志的最后一行中提到为

.dex文件中的方法引用数不能超过64K。了解如何在解决此问题以修复此错误u might need to enable multidex as mentioned here

pwuypxnk

pwuypxnk3#

可能是minSdkVersion问题。在目录下尝试minSdkVersion = 21。android/build.gradle.
按照这个答案--
https://stackoverflow.com/a/61341015/10638877

相关问题