我已经尝试过gradlew clean以及此处和GitHub上可用的所有其他解决方案,但是错误不匹配并且解决方案不起作用
运行
后cmd出错react-native run-android
> Task :app:transformDexArchiveWithExternalLibsDexMergerForDebug FAILED
D8: Program type already present: com.google.android.gms.common.api.internal.zzda
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':app:transformDexArchiveWithExternalLibsDexMergerForDebug'.
> com.android.builder.dexing.DexArchiveMergerException: Error while merging dex archives: C:\New folder\App\android\app\build\intermediates\transforms\dexBuilder\debug\0.jar, C:\New folder\App\android\app\build\intermediates\transforms\dexBuilder\debug\1.jar, C:\New folder\App\android\app\build\intermediates\transforms\dexBuilder\debug\2.jar, C:\New folder\App\android\app\build\intermediates\transforms\dexBuilder\debug\3.jar, C:\New folder\App\android\app\build\intermediates\transforms\dexBuilder\debug\4.jar, C:\New folder\App\android\app\build\intermediates\transforms\dexBuilder\debug\5.jar, C:\New folder\App\android\app\build\intermediates\transforms\dexBuilder\debug\6.jar, C:\New folder\App\android\app\build\intermediates\transforms\dexBuilder\debug\7.jar, C:\New folder\App\android\app\build\intermediates\transforms\dexBuilder\debug\8.jar, C:\New folder\App\android\app\build\intermediates\transforms\dexBuilder\debug\9.jar, C:\New folder\App\android\app\build\intermediates\transforms\dexBuilder\debug\10.jar, C:\New folder\App\android\app\build\intermediates\transforms\dexBuilder\debug\11.jar, C:\New folder\App\android\app\build\intermediates\transforms\dexBuilder\debug\12.jar, C:\New folder\App\android\app\build\intermediates\transforms\dexBuilder\debug\13.jar, C:\New folder\App\android\app\build\intermediates\transforms\dexBuilder\debug\14.jar, C:\New folder\App\android\app\build\intermediates\transforms\dexBuilder\debug\15.jar, C:\New folder\App\android\app\build\intermediates\transforms\dexBuilder\debug\16.jar, C:\New folder\App\android\app\build\intermediates\transforms\dexBuilder\debug\17.jar, C:\New folder\App\android\app\build\intermediates\transforms\dexBuilder\debug\18.jar, C:\New folder\App\android\app\build\intermediates\transforms\dexBuilder\debug\19.jar, C:\New folder\App\android\app\build\intermediates\transforms\dexBuilder\debug\20.jar, C:\New folder\App\android\app\build\intermediates\transforms\dexBuilder\debug\21.jar, C:\New folder\App\android\app\build\intermediates\transforms\dexBuilder\debug\22.jar, C:\New folder\App\android\app\build\intermediates\transforms\dexBuilder\debug\23.jar, C:\New folder\App\android\app\build\intermediates\transforms\dexBuilder\debug\24.jar, C:\New folder\App\android\app\build\intermediates\transforms\dexBuilder\debug\25.jar, C:\New folder\App\android\app\build\intermediates\transforms\dexBuilder\debug\26.jar, C:\New folder\App\android\app\build\intermediates\transforms\dexBuilder\debug\27.jar, C:\New folder\App\android\app\build\intermediates\transforms\dexBuilder\debug\28.jar, C:\New folder\App\android\app\build\intermediates\transforms\dexBuilder\debug\29.jar, C:\New folder\App\android\app\build\intermediates\transforms\dexBuilder\debug\30.jar, C:\New folder\App\android\app\build\intermediates\transforms\dexBuilder\debug\31.jar, C:\New folder\App\android\app\build\intermediates\transforms\dexBuilder\debug\32.jar, C:\New folder\App\android\app\build\intermediates\transforms\dexBuilder\debug\33.jar, C:\New folder\App\android\app\build\intermediates\transforms\dexBuilder\debug\34.jar, C:\New folder\App\android\app\build\intermediates\transforms\dexBuilder\debug\35.jar, C:\New folder\App\android\app\build\intermediates\transforms\dexBuilder\debug\36.jar, C:\New folder\App\android\app\build\intermediates\transforms\dexBuilder\debug\37.jar, C:\New folder\App\android\app\build\intermediates\transforms\dexBuilder\debug\38.jar, C:\New folder\App\android\app\build\intermediates\transforms\dexBuilder\debug\39.jar, C:\New folder\App\android\app\build\intermediates\transforms\dexBuilder\debug\40.jar, C:\New folder\App\android\app\build\intermediates\transforms\dexBuilder\debug\41.jar, C:\New folder\App\android\app\build\intermediates\transforms\dexBuilder\debug\42.jar, C:\New folder\App\android\app\build\intermediates\transforms\dexBuilder\debug\43.jar, C:\New folder\App\android\app\build\intermediates\transforms\dexBuilder\debug\44.jar, C:\New folder\App\android\app\build\intermediates\transforms\dexBuilder\debug\45.jar, C:\New folder\App\android\app\build\intermediates\transforms\dexBuilder\debug\46.jar, C:\New folder\App\android\app\build\intermediates\transforms\dexBuilder\debug\47.jar, C:\New folder\App\android\app\build\intermediates\transforms\dexBuilder\debug\48.jar, C:\New folder\App\android\app\build\intermediates\transforms\dexBuilder\debug\49.jar, C:\New folder\App\android\app\build\intermediates\transforms\dexBuilder\debug\50.jar, C:\New folder\App\android\app\build\intermediates\transforms\dexBuilder\debug\51.jar
* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.
* Get more help at https://help.gradle.org
BUILD FAILED in 1m 39s
82 actionable tasks: 78 executed, 4 up-to-date
Could not install the app on the device, read the error above for details.
Make sure you have an Android emulator running or a device connected and have
set up your Android development environment:
https://facebook.github.io/react-native/docs/getting-started.html
我已经尝试了所有解决方案,但似乎都没有用。请帮助
react-native-cli:2.0.1
反应本机:0.53.0
build.gradle文件:
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
repositories {
jcenter()
google()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.1.3'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
allprojects {
repositories {
mavenLocal()
jcenter()
maven {
// All of React Native (JS, Obj-C sources, Android binaries) is installed from npm
url "$rootDir/../node_modules/react-native/android"
}
maven {
url 'https://maven.google.com'
}
}
}
ext {
compileSdkVersion = 26
targetSdkVersion = 26
buildToolsVersion = "26.0.2"
supportLibVersion = "26.1.0"
googlePlayServicesVersion = "11.8.0"
oreoEXPERIMENTAL = "yes"
}
android / app / build.gradle文件:
apply plugin: "com.android.application"
import com.android.build.OutputFile
/**
* The react.gradle file registers a task for each build variant (e.g. bundleDebugJsAndAssets
* and bundleReleaseJsAndAssets).
* These basically call `react-native bundle` with the correct arguments during the Android build
* cycle. By default, bundleDebugJsAndAssets is skipped, as in debug/dev mode we prefer to load the
* bundle directly from the development server. Below you can see all the possible configurations
* and their defaults. If you decide to add a configuration block, make sure to add it before the
* `apply from: "../../node_modules/react-native/react.gradle"` line.
*
* project.ext.react = [
* // the name of the generated asset file containing your JS bundle
* bundleAssetName: "index.android.bundle",
*
* // the entry file for bundle generation
* entryFile: "index.android.js",
*
* // whether to bundle JS and assets in debug mode
* bundleInDebug: false,
*
* // whether to bundle JS and assets in release mode
* bundleInRelease: true,
*
* // whether to bundle JS and assets in another build variant (if configured).
* // See http://tools.android.com/tech-docs/new-build-system/user-guide#TOC-Build-Variants
* // The configuration property can be in the following formats
* // 'bundleIn${productFlavor}${buildType}'
* // 'bundleIn${buildType}'
* // bundleInFreeDebug: true,
* // bundleInPaidRelease: true,
* // bundleInBeta: true,
*
* // whether to disable dev mode in custom build variants (by default only disabled in release)
* // for example: to disable dev mode in the staging build type (if configured)
* devDisabledInStaging: true,
* // The configuration property can be in the following formats
* // 'devDisabledIn${productFlavor}${buildType}'
* // 'devDisabledIn${buildType}'
*
* // the root of your project, i.e. where "package.json" lives
* root: "../../",
*
* // where to put the JS bundle asset in debug mode
* jsBundleDirDebug: "$buildDir/intermediates/assets/debug",
*
* // where to put the JS bundle asset in release mode
* jsBundleDirRelease: "$buildDir/intermediates/assets/release",
*
* // where to put drawable resources / React Native assets, e.g. the ones you use via
* // require('./image.png')), in debug mode
* resourcesDirDebug: "$buildDir/intermediates/res/merged/debug",
*
* // where to put drawable resources / React Native assets, e.g. the ones you use via
* // require('./image.png')), in release mode
* resourcesDirRelease: "$buildDir/intermediates/res/merged/release",
*
* // by default the gradle tasks are skipped if none of the JS files or assets change; this means
* // that we don't look at files in android/ or ios/ to determine whether the tasks are up to
* // date; if you have any other folders that you want to ignore for performance reasons (gradle
* // indexes the entire tree), add them here. Alternatively, if you have JS files in android/
* // for example, you might want to remove it from here.
* inputExcludes: ["android/**", "ios/**"],
*
* // override which node gets called and with what additional arguments
* nodeExecutableAndArgs: ["node"],
*
* // supply additional arguments to the packager
* extraPackagerArgs: []
* ]
*/
project.ext.react = [
entryFile: "index.js"
]
apply from: "../../node_modules/react-native/react.gradle"
/**
* Set this to true to create two separate APKs instead of one:
* - An APK that only works on ARM devices
* - An APK that only works on x86 devices
* The advantage is the size of the APK is reduced by about 4MB.
* Upload all the APKs to the Play Store and people will download
* the correct one based on the CPU architecture of their device.
*/
def enableSeparateBuildPerCPUArchitecture = false
/**
* Run Proguard to shrink the Java bytecode in release builds.
*/
def enableProguardInReleaseBuilds = false
android {
compileSdkVersion 23
buildToolsVersion '27.0.3'
defaultConfig {
applicationId "com.cherishx_vendors"
minSdkVersion 16
targetSdkVersion 22
versionCode 1
versionName "1.0"
ndk {
abiFilters "armeabi-v7a", "x86"
}
}
splits {
abi {
reset()
enable enableSeparateBuildPerCPUArchitecture
universalApk false // If true, also generate a universal APK
include "armeabi-v7a", "x86"
}
}
buildTypes {
release {
minifyEnabled enableProguardInReleaseBuilds
proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro"
}
}
// applicationVariants are e.g. debug, release
applicationVariants.all { variant ->
variant.outputs.each { output ->
// For each separate APK per architecture, set a unique version code as described here:
// http://tools.android.com/tech-docs/new-build-system/user-guide/apk-splits
def versionCodes = ["armeabi-v7a":1, "x86":2]
def abi = output.getFilter(OutputFile.ABI)
if (abi != null) { // null for the universal-debug, universal-release variants
output.versionCodeOverride =
versionCodes.get(abi) * 1048576 + defaultConfig.versionCode
}
}
}
}
dependencies {
compile project(':react-native-onesignal')
compile project(':react-native-mauron85-background-geolocation')
compile fileTree(dir: "libs", include: ["*.jar"])
compile "com.android.support:appcompat-v7:23.0.1"
compile "com.facebook.react:react-native:+" // From node_modules
}
// Run this once to be able to run the application with BUCK
// puts all compile dependencies into folder libs for BUCK to use
task copyDownloadableDepsToLibs(type: Copy) {
from configurations.compile
into 'libs'
}
将multidexEnabled = true
添加到 android / app / build.gradle文件后
弹出以下错误:
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':app:transformClassesWithMultidexlistForDebug'.
> com.android.build.api.transform.TransformException: Error while generating the main dex list.
* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.
* Get more help at https://help.gradle.org
BUILD FAILED in 16s
68 actionable tasks: 1 executed, 67 up-to-date
Could not install the app on the device, read the error above for details.
Make sure you have an Android emulator running or a device connected and have
set up your Android development environment:
https://facebook.github.io/react-native/docs/getting-started.html
这个错误在任何地方都没有得到解决,因此我将其作为对此问题的更新。
答案 0 :(得分:13)
打开 /android/app/build.gradle 文件。
在依赖项下,我们需要添加模块,然后在defaultConfig中启用它
android {
defaultConfig {
// ...
multiDexEnabled true
}
// ...
}
dependencies {
implementation 'com.android.support:multidex:1.0.3'
}
答案 1 :(得分:4)
我遇到了这个错误
<块引用>任务“:app:multiDexListDebug”执行失败。
但是他在我的错误的续篇中写道
我从两个地址安装了 async-storage 当我删除第二个
错误已修复
"@react-native-async-storage/async-storage": "^1.13.2",
"@react-native-community/async-storage": "^1.12.0",
答案 2 :(得分:3)
我通过启用来解决问题
android {
defaultConfig {
// ...
multiDexEnabled true
}
// ...
}
path:android / app / build.gradle
答案 3 :(得分:3)
将关注添加到您的tk.Label
android/app/build.gradle
答案 4 :(得分:1)
这将解决它 cd android && ./gradlew clean
答案 5 :(得分:1)
您可能必须将multiDexEnabled true
属性添加到android/app/build.gradle
文件中。
defaultConfig {
multiDexEnabled true
// (...) more properties
}
控制台错误为您提供了克服此问题的提示。他们向您显示了此链接:https://developer.android.com/studio/build/multidex
您可以在那里了解有关该问题的更多信息。但这是我在2020年的解决方案。和平!
答案 6 :(得分:1)
At Path android/app/build.gradle
defaultConfig {
multiDexEnabled true //Add this line
}
https://github.com/react-native-community/react-native-webview/issues/1344
答案 7 :(得分:1)
在文件(<your_project_folder>/android/app/build.gradle
)中,用以下几行修改代码:
android {
...
packagingOptions {
pickFirst '**/libjsc.so'
}
}
参考:https://github.com/react-native-community/jsc-android-buildscripts/issues/80
答案 8 :(得分:1)
我已通过启用/android/app/build.gradle文件中的multiDex进行了修复。
android {
defaultConfig {
.......
multiDexEnabled true
}
......
}
答案 9 :(得分:0)
几天前出现同样的错误,看来您必须启用multidex = true
并删除了我的构建文件夹
您可以在react-native上检出该线程
答案 10 :(得分:0)
只要跑步
cd android && gradlew clean
然后
cd .. && react-native run-android
答案 11 :(得分:0)
我也有同样的错误,我能够使用命令./gradlew assembleDebug --stacktrace
(在android文件夹中)对其进行调试,对我来说,这是因为我有两个库,并且在更改时都具有相同的包名称一个的软件包名称解决了问题
答案 12 :(得分:0)
执行此操作:
转到Android Studio
打开您的项目文件
点击 Build
单击清洁项目
使用react-native run-android
答案 13 :(得分:0)
此答案的更新(如果人们不知道为什么,尤其是一台Mac)
使用sudo!事实证明,我试图弄清楚gradlew命令为什么没有运行很久了-它没有权限!
使用:
sudo ./gradlew [command]
我既沮丧又开心。
答案 14 :(得分:0)
Add the below line to your android/build.gradle file
ext {
googlePlayServicesVersion = "16.0.1"
// ... rest of ext properties
}
https://github.com/idehub/react-native-google-analytics-bridge/wiki/Android-build-problems
答案 15 :(得分:0)
必须使用最新的dex版本
// goto branch-a branch
$ git checkout branch-a
$ git write-tree
6fa6989240d2fc6490f8215682a20c63dac5560a // echo tree id? I guess
$ git commit-tree -p branch-a -p branch-b 6fa6989240d2fc6490f8215682a20c63dac5560a
<type some commit message end with Ctrl-d>
20bc36a2b0f2537ed11328d1aedd9c3cff2e87e9 // echo new commit id
$ git reset --hard 20bc36a2b0f2537ed11328d1aedd9c3cff2e87e9
答案 16 :(得分:0)
我有同样的问题。因此,为了使其“更清晰”,我做了以下这些事情:
multidexEnabled=true
(可选)-我还有另一个问题,其中Gradle无法正确找到播放服务版本:我修改了项目build.gradle
,以便在jcenter()
之前先搜索Google Maven。 / p>
maven {
url 'https://maven.google.com/'
name 'Google'
}
mavenLocal()
jcenter()