任务':app:transformDexArchiveWithDexMergerForDebug'的执行失败。 -React Native

时间:2019-11-28 21:56:50

标签: android react-native android-studio

我有用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

那我该如何解决呢?

3 个答案:

答案 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。

按照这个答案-

https://stackoverflow.com/a/61341015/10638877