我有Android Studio Beta。我创建了一个新项目,编译我的旧模块,但是当我尝试启动应用程序时,它没有启动消息:
Error:Execution failed for task ':app:transformDexArchiveWithExternalLibsDexMergerForDebug'.
com.android.builder.dexing.DexArchiveMergerException:无法合并dex
但我不知道如何解决这个错误。我用谷歌搜索了几个小时但没有成功。
我的项目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.0.0-beta6'
classpath "io.realm:realm-gradle-plugin:3.7.1"
classpath 'com.google.gms:google-services:3.1.0'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
allprojects {
repositories {
jcenter()
google()
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}
我的应用程序gradle:
apply plugin: 'com.android.application'
android {
compileSdkVersion 26
buildToolsVersion "26.0.1"
defaultConfig {
applicationId "parad0x.sk.onlyforyou"
minSdkVersion 21
targetSdkVersion 26
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
multiDexEnabled true
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
debug {
}
}
compileOptions {
targetCompatibility 1.7
sourceCompatibility 1.7
}
packagingOptions {
exclude 'META-INF/LICENSE'
exclude 'META-INF/NOTICE'
}
lintOptions {
checkReleaseBuilds false
}
productFlavors {
}
}
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
exclude group: 'com.android.support', module: 'support-annotations'
})
//noinspection GradleCompatible
compile 'com.android.support:appcompat-v7:26.0.0-alpha1'
compile project(path: ':loginregisterview')
}
我的模块gradle:
apply plugin: 'com.android.library'
apply plugin: 'realm-android'
android {
compileSdkVersion 26
buildToolsVersion "26.0.1"
defaultConfig {
minSdkVersion 19
targetSdkVersion 26
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
exclude group: 'com.android.support', module: 'support-annotations'
})
compile 'com.android.support:appcompat-v7:26.0.2'
compile 'com.android.support:support-v4:26.1.0'
compile 'com.github.bumptech.glide:glide:4.0.0'
testCompile 'junit:junit:4.12'
compile project(path: ':parser')
}
我的第二个模块:
apply plugin: 'com.android.library'
apply plugin: 'realm-android'
android {
compileSdkVersion 26
buildToolsVersion "26.0.1"
defaultConfig {
minSdkVersion 14
targetSdkVersion 23
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
realm {
syncEnabled = true
}
useLibrary 'org.apache.http.legacy'
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
productFlavors {
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
androidTestCompile 'junit:junit:4.12'
// compile 'com.android.support:appcompat-v7:23.1.0'
// compile 'com.fasterxml.jackson.core:jackson-core:2.9.0'
// compile 'com.fasterxml.jackson.core:jackson-annotations:2.9.0'
// compile 'com.fasterxml.jackson.core:jackson-databind:2.9.0'
compile 'com.google.code.gson:gson:2.6.2'
}
____________发现_________
当我没有导入第二个模块(解析器)时,应用程序没有在dex上崩溃,但是当模块未导入时,应用程序无效。 :D:D
答案 0 :(得分:281)
从com.google.android.gms:play-services:11.2.2
更新为com.google.android.gms:play-services:11.4.0
时,我遇到了同样的问题。这解决了我的问题:
答案 1 :(得分:262)
我尝试了以上所有内容,但没有一个帮助,最后,我发现这对我有用:
应用/的build.gradle:强>
android {
defaultConfig {
multiDexEnabled true
}
}
答案 2 :(得分:56)
有时您只需要消除警告,错误就会自动消失。见下面特例:
我在模块级build.gradle
文件中有这两个依赖项:
implementation 'com.android.support:appcompat-v7:27.0.2'
implementation 'com.android.support:recyclerview-v7:27.0.2'
且Studio 警告(除了dex合并问题):
所有
com.android.support
库必须使用完全相同的版本规范(混合版本可能导致运行时崩溃)。找到版本27.0.2
,21.0.3
。示例包括com.android.support:animated-vector-drawable:27.0.2
和com.android.support:support-v4:21.0.3
所以我明确确定了com.android.support:support-v4
的版本(详见here)以及两个问题(警告和相关的警告) dex mergeging 已解决 :
implementation 'com.android.support:support-v4:27.0.2' // Added this line (according to above warning message)
implementation 'com.android.support:appcompat-v7:27.0.2'
implementation 'com.android.support:recyclerview-v7:27.0.2'
请参阅以下有关其他类似情况的评论。
答案 3 :(得分:37)
就我而言,不幸的是,Michel和Suragch的解决方案都不适合我。
所以我通过以下方式解决了这个问题:
在 gradle:3.0 中,编译配置现已弃用,应替换为实施或 api 。有关详细信息,您可以read here您可以阅读Gradle Build Tool
上的官方文档编译配置仍然存在但不应该使用,因为它不会提供api和实现的保证 配置提供。
最好使用实施或 api 而不是编译
将编译替换为实施,将 debugCompile 替换为 debugImplementation , testCompile 使用 androidTestImplementation
testImplementation 和 androidtestcompile例如:而不是这个
compile 'com.android.support:appcompat-v7:26.0.2'
compile 'com.android.support:support-v4:26.1.0'
compile 'com.github.bumptech.glide:glide:4.0.0'
像这样使用
implementation 'com.android.support:appcompat-v7:26.0.2'
implementation 'com.android.support:support-v4:26.1.0'
implementation 'com.github.bumptech.glide:glide:4.0.0'
之后
希望它会有所帮助!
答案 4 :(得分:26)
删除 <form id="contact-form" class="form" action="#" method="POST" role="form">
<div class="form-group">
<label class="form-label" for="name">Your Name</label>
<span class="wpcf7-form-control-wrap fullname">
<input type="text" class="form-control" id="name" name="name" placeholder="Your Name" required>
</span>
</div>
<div class="form-group">
<label class="form-label" for="email">Your Email</label>
<span class="wpcf7-form-control-wrap email">
<input type="email" class="form-control" id="email" name="email" placeholder="Your Email" required>
</span>
</div>
<div class="form-group">
<label class="form-label" for="subject">Subject</label>
<span class="wpcf7-form-control-wrap subject">
<input type="text" class="form-control" id="subject" name="subject" placeholder="Subject">
</span>
</div>
<div class="form-group">
<label class="form-label" for="message">Message</label>
<span class="wpcf7-form-control-wrap message">
<textarea rows="5" cols="50" name="message" class="form-control" id="message" placeholder="Message..." required></textarea>
</span>
</div>
<div class="text-center">
<span class="wpcf7-form-control-wrap fullname">
<button type="submit" class="btn btn-start-order">Send Message</button>
</span>
</div>
</form>
目录。
再次运行您的应用。
备注强>
.gradle
目录位于项目的根文件夹中。 (您可能必须先显示隐藏文件。)答案 5 :(得分:22)
按照Suragch的建议删除.gradle
对我来说还不够。另外,我必须执行Build > Clean Project
。
请注意,要查看.gradle
,您需要切换到&#34;项目&#34;在左上角的导航器中查看:
答案 6 :(得分:21)
我尝试了所有其他解决方案,但没有人为我工作。最后,我通过编辑build.gradle
使用相同的依赖版本来解决它。我认为在将库添加到使用不同依赖版本的支持或谷歌库的gradle时会出现此问题。
将以下代码添加到构建gradle文件中。然后clean
和rebuild
投标。
ps:这对我来说是旧解决方案所以你应该使用更新版本 以下图书馆。
configurations.all {
resolutionStrategy.eachDependency { DependencyResolveDetails details ->
def requested = details.requested
if (requested.group == 'com.android.support') {
if (!requested.name.startsWith("multidex")) {
details.useVersion '26.1.0'
}
} else if (requested.group == "com.google.android.gms") {
details.useVersion '11.8.0'
} else if (requested.group == "com.google.firebase") {
details.useVersion '11.8.0'
}
}
}
答案 7 :(得分:13)
在我的案例中,问题是因为房间库:
compile 'android.arch.persistence.room:runtime:1.0.0-alpha1'
将其更改为:
compile 'android.arch.persistence.room:runtime:1.0.0'
的工作。
答案 8 :(得分:12)
if(1。尝试清理和重建工作)然后好
否则if(2.尝试删除gradle工作)然后好
else-&GT; 3.尝试添加grade.properties
android.enableD8 = false
else-&GT; 4.将multiDexEnabled
true添加到build.gradle
android {
compileSdkVersion 26
defaultConfig {
...
minSdkVersion 15
targetSdkVersion 26
multiDexEnabled true
...
}
}
并添加依赖项
dependencies {
compile 'com.android.support:multidex:1.0.1'}
它可能是第一个适用于你的等等,但它实际上取决于你的问题的性质,例如
我添加此库后出现错误
implementation 'com.jjoe64:graphview:4.2.2'
后来我发现我必须检查它,我必须添加相同版本的支持库。所以我必须尝试另一个版本
compile 'com.jjoe64:graphview:4.2.1'
它解决了这个问题。所以要注意这一点。
答案 9 :(得分:11)
只是添加上述解决方案:
确保没有指向的重复依赖项 它们的不同版本,在多个地方(甚至在同一个文件中)。
答案 10 :(得分:11)
嗨,我有同样的问题几乎尝试了一切。所以,最后我通过逐行调试一切经过6个小时的努力解决了。
classpath 'com.google.gms:google-services:3.0.0'
Google-services 3.0 不支持带有PlayServiceVersion的Studio 3.0的firebase:11.6.0或更低版本。
implementation "com.google.firebase:firebase-messaging:$rootProject.ext.playServiceVersion"
implementation "com.google.firebase:firebase-core:$rootProject.ext.playServiceVersion"
implementation "com.firebase:firebase-jobdispatcher-with-gcm-dep:$rootProject.ext.jobdispatcherVersion"
解决方案:
我已将 google服务 更改为
classpath 'com.google.gms:google-services:3.1.1'
它支持firebase服务。
希望有人能节省他/她的时间。
答案 11 :(得分:9)
启用
defaultConfig { multiDexEnabled是的 }
如果步骤1不起作用,那么
转到项目结构并找出正在使用的外部库 不同的版本。双击它并删除其jar文件。关闭项目并再次打开android studio将重建项目。 问题应该消失。
答案 12 :(得分:5)
其中一种可能性是:存在相同的库但在依赖项中具有不同的版本。
我在gradle文件中使用以下行时出现此问题:
compile fileTree(include: ['*.jar'], dir: 'libs')
compile 'com.google.code.gson:gson:2.8.2'
gson库位于我的libs目录中,但是具有以前的版本。
我从libs目录中删除了gson-2.3.1.jar
,一切都恢复正常。
答案 13 :(得分:5)
[无法合并DEX求助] 经过数小时的堆栈溢出 我解决了“UNABLE TO MERGE DEX ERROR”
原因 - Android已将其支持库更新到v27.1.0,因此您必须将gradle文件中的所有android支持行从26.1.0更改为27.1.0
确保存储库部分包含带有“https://maven.google.com”端点的maven部分。例如:
allprojects { 存储库{ jcenter() maven { 网址“https://maven.google.com” } } }
原因: - Android无法更新SDK管理器中的支持库,现在它使用maven.google.com进行更新,因此您必须将其包含在内才能使用27.1.0支持库
更改版本后: 1.清洁项目 2.重建项目
答案 14 :(得分:5)
如果在包含kotlin支持后出现此错误,并且没有其他解决方案有效,请尝试将app模块的{0}的kotlin依赖关系更改为:
build.gradle
这适用于Android Studio 3.0 Beta 6.有关详细说明,请参阅this answer。
答案 15 :(得分:4)
With Android Studio 3.0 stable build以下步骤对我有用:
答案 16 :(得分:4)
添加以下命令:
android {
...
dexOptions {
jumboMode true
javaMaxHeapSize "4g"
}
}
答案 17 :(得分:4)
安装Google Play服务(最新版本)+包括
android {
defaultConfig {
multiDexEnabled true
}
}
build.gradle中的解决了我的问题,请务必清理并重建项目!
答案 18 :(得分:3)
我同意Chris-Jr。如果您使用Firebase嵌入AdMob广告(或者即使您不是),则即使您不将其添加为依赖项,播放服务分析也会包含播放服务广告。由于分析包括版本10.0.1的广告,而不是11.4.0(鼠标在gradle中的提示显示了这一点),谷歌显然在他们的11.4.0推出时犯了一个错误。
我在顶部手动添加编译'com.google.android.gms:play-services-ads:11.4.0',但只有在我禁用了Instant Run之后: http://stackoverflow.com/a/35169716/530047
因此,要么回归到10.0.1,要么添加广告并禁用“即时运行”。 这就是我发现的,如果有帮助的话。
答案 19 :(得分:2)
在我的情况下,它是 gson-2.8.1.jar ,我已将其添加到项目的 libs 文件夹中。但SDK的引用已经存在。 因此,将 gson-2.8.1.jar 添加到libs文件夹不是必要的。
当我拿出它时,gson-2.8.1.jar 项目编译时没有出现这个错误。
因此,请尝试修改 libs 文件夹和依赖项。
答案 20 :(得分:2)
对于我们的项目,我们意外地添加了两次不同名称的jar。删除其中一个解决了这个问题。
答案 21 :(得分:2)
我遇到了同样的问题,并找到了我案件的真正原因。 以前,我也再次尝试了所有以前的答案,但它没有解决问题。 我的Wear app项目中有两个模块,build.gradle如下:
穿模块的build.gradle:
implementation project(':common')
implementation files('libs/farmer-motion-1.0.jar')
common module的build.gradle:
implementation files('libs/farmer-motion-1.0.jar')
在升级到gradle 3.x之前,'implementation'都是'compile'。
我使用--stacktrace选项运行gradlew来获取堆栈跟踪,当出现此问题时,您可以在gradle控制台窗口上单击此选项。并发现对jar包的依赖重复:
Caused by: com.android.dex.DexException: Multiple dex files define Lcom/farmer/motion/common/data/pojo/SportSummary$2;
在farm-motion-1.0.jar包中的SportSummary类,在阅读official migration guide之后,我将build.gradle更改为:
穿模块的build.gradle:
implementation project(':common')
// delete dependency implementation files('libs/farmer-motion-1.0.jar')
common module的build.gradle:
api files('libs/farmer-motion-1.0.jar') // change implementation to api
现在穿模块将具有通过普通模块输出的farm-motion-1.0.jar的依赖性。 如果在运行时期间没有依赖jar包,那么'实现'jar包的依赖关系也可以更改为'compileOnly'。
答案 22 :(得分:1)
对我而言,它正在 app \ build.gradle中更新firebase消息:
compile 'com.google.firebase:firebase-messaging:10.0.1'
到
compile 'com.google.firebase:firebase-messaging:11.4.2'
答案 23 :(得分:1)
android {
defaultConfig {
...
minSdkVersion 15
targetSdkVersion 26
multiDexEnabled true
}
...
}
dependencies {
compile 'com.android.support:multidex:1.0.1'
}
答案 24 :(得分:1)
如果最常见的答案对您不起作用,您的问题可能是您有多个依赖于同一个库的依赖项。
以下是一些调试技巧。在此示例代码中,com.google.code.findbugs:jsr305:3.0.0
是违规库。
每次修改以检查解决方案时始终清理并重建
使用--stacktrace
标志构建以获取更多详细信息。它会抱怨一个类,谷歌那个类找到了库。 Here's how you can set up Android studio to always run gradle with the --stacktrace
flag
构建后,在Android Studio View > Tool Windows > Gradle Console
中查看Gradle控制台
运行./gradlew -q app:dependencies
检查重复的依赖关系。每次修改build.gradle时都可以重新运行它。
在build.gradle中,
android {
...
configurations.all {
resolutionStrategy {
// Force a particular version of the library
// across all dependencies that have that dependency
force 'com.google.code.findbugs:jsr305:3.0.0'
}
}
}
在build.gradle中,
dependencies {
...
implementation('com.google.auth:google-auth-library-oauth2-http:0.6.0') {
// Exclude the library for this particular import
exclude group: 'com.google.code.findbugs'
}
}
在build.gradle中,
android {
...
configurations.all {
resolutionStrategy {
// Completely exclude the library. Works for transitive
// dependencies.
exclude group: 'com.google.code.findbugs'
}
}
}
如果您的某些依赖项位于jar文件中,请打开jar文件并查看是否存在任何冲突的类名。如果是,您可能需要使用新的类名重新构建jar或查看shading。
更多背景阅读:
答案 25 :(得分:1)
我找到了我的项目出现此问题的原因。 我在build.gradle中添加了两次依赖项 。有一次通过添加jar依赖来添加依赖关系和一次:
编译'org.achartengine:achartengine:1.2.0'
...
实施文件('../ achartengine-1.2.0.jar')
删除第一行问题后解决。
答案 26 :(得分:1)
可能的根本原因之一:Android Studio导入多模块项目未正确处理的重复瞬态依赖项。检查列表并将其删除。对我来说,修复就是这样:
--- a/project/module/build.gradle
+++ b/project/module/build.gradle
@@ -21,5 +21,4 @@ android {
dependencies {
implementation project(':upstream-dependency-project')
implementation 'com.android.support:support-v4:18.0.0'
- implementation files('libs/slf4j-android-1.6.1-RC1.jar')
}
答案 27 :(得分:1)
这可能不是您的问题,但是当我在项目的dependencies {}部分中意外包含两个相同(但名称不同)的库时,出现了此错误。
答案 28 :(得分:1)
在我的情况下,一个库导致了这个问题,库已成功添加到项目中,但是当我运行我的应用程序时,它向我显示此错误。因此,如果您也遇到这种情况,则可以转到github并检查问题或提出新问题。如果找不到有关该库的任何解决方案,我建议您将其替换。
答案 29 :(得分:1)
我有同样的问题。
我刚刚启用了Instant Run
(已禁用),然后我的项目开始了。
您可以在
File->Settings-> Build,Execution,Deployment->Instant Run
答案 30 :(得分:0)
如果您在插件中使用Firebsae,则此问题将归因于Play服务版本问题,请尝试以下操作 `科尔多夫
cordova.system.library.4=com.google.gms:google-services:3.3.0
cordova.system.library.5=com.google.android.gms:play-services-tagmanager:+
cordova.system.library.6=com.google.firebase:firebase-core:16.0.1
cordova.system.library.7=com.google.firebase:firebase-messaging:17.1.0
cordova.system.library.8=com.google.firebase:firebase-crash:16.0.1
cordova.system.library.9=com.google.firebase:firebase-config:16.0.0
cordova.system.library.10=com.google.firebase:firebase-perf:16.0.0
像这样更改您的project.properties,然后将解决此问题 Reference
答案 31 :(得分:0)
转到Unity >> Edit Project settings>>player
,找到Minify
部分,然后选择Proguard
选项
答案 32 :(得分:0)
这对我有用-
最后在platform \ android \ build.gradle中添加代码
PagedList
答案 33 :(得分:0)
不幸的是,Michel和Suragch的解决方案都不适合我。
我最终必须做的只是将我的com.google.firebase:firebase-database
回滚到版本10.0.1,因为11.4.0在我的应用程序gradle文件中导致了依赖项不一致警告。
答案 34 :(得分:0)
将buildToolsVersion更改为其他版本并进行同步,将其更改回来并再次同步。它会再次运作。
答案 35 :(得分:0)
确保所有相同的源库具有相同的版本号。在我的情况下,我使用不同的谷歌API版本。我使用 11.6.0 用于所有Google图书馆,但 10.4.0 用于google place api。更新google将api更新为 11.6.0 后,问题已修复。
请注意我的项目也启用了multidex。
答案 36 :(得分:0)
检查 build.gradle 中是否有debugCompile
和releaseCompile
。将其更改为debugImplementation
和releaseImplementation
。这就是我解决它的方法,gradle应该通过这个成功标记的指令作为弃用,但突然间它完全停留在这两个。
答案 37 :(得分:0)
将此添加到您的 app / build.gradle 中。会工作
实现'com.android.support:design:27.1.0'
答案 38 :(得分:0)
此信息尚未在此处分享,因此希望可以对某人有所帮助。
遵循此link为我解决了同样的问题。
首先,我将注意到不必将multiDexEnabled设置为true。
首先,我将pubspec.yaml中的依赖项设置为
dependencies:
flutter:
sdk: flutter
cloud_firestore: ^0.8.2
并在我的IDE终端中运行flutter packages get
。
我还必须更改最低目标SDK版本:
仅此一项就可以解决您的问题;但是,我还必须执行以下操作,因为某些依赖项版本不匹配。
我必须打开android/app/build.gradle
,然后将以下行添加为文件的最后一行:
apply plugin: 'com.google.gms.google-services'
接下来,我必须打开android/build.gradle
,然后在buildscript标记内,添加一个新的依赖项:
buildscript {
repositories {
// ...
}
dependencies {
// ...
classpath 'com.google.gms:google-services:3.2.1' // new
}
}
此后,我的应用终于在android模拟器上运行了。
如果遇到困难,link的演练会更完整。
另外,请注意,我不必将multiDexEnabled设置为true。
答案 39 :(得分:0)
就我而言,以下方法有效
implementation 'com.google.android.gms:play-services-ads:17.2.0'
implementation 'com.google.firebase:firebase-core:16.0.9'
implementation 'com.google.firebase:firebase-analytics:16.5.0'
implementation 'com.google.firebase:firebase-messaging:18.0.0'
在我的app
模块中。问题在于它们是firebase-analytics最新库,但无法与其他最新库一起正常工作。
答案 40 :(得分:0)
只需将这一行添加到app / build.gradle
defaultConfig {
multiDexEnabled true
}
答案 41 :(得分:0)
在我的情况下,我导入一个'android_support'lib两次,所以我在'libs'目录下删除一个并重建。
答案 42 :(得分:0)
如果它们不相同,请检查依赖项版本然后将其设置为相同它将解决您的问题
compile 'com.android.support:appcompat-v7:27.0.2'
compile 'com.android.support:recyclerview-v7:27.0.2'
compile 'com.android.support:cardview-v7:27.0.2'
答案 43 :(得分:0)
尝试这样,它对我有用。
在app / build.gradle中:
void
在模块grow-notification / build.gradle中:
dependencies {
....
compile project(':grow-notification')
/** Firebase Start **/
compile 'com.google.firebase:firebase-messaging:11.4.0'
compile 'com.firebase:firebase-jobdispatcher:0.6.0'
/** Firebase End **/
}
apply plugin: 'com.google.gms.google-services'
答案 44 :(得分:0)
在我的情况下,问题是我在build.gradle文件中实现了两次相同的库。删除重复的条目对我有用。甚至不需要清理,重建项目。
答案 45 :(得分:0)
简单的解决方案对我有用:
然后清理和重建项目。
答案 46 :(得分:0)
我遇到了同样的问题。我通过执行干净然后从Android Studio 3.0菜单构建项目来解决它:
答案 47 :(得分:0)
对于大多数情况,这都有效。 这个对我有用 。 祝你好运,如果它也适合你。
第1步:在build.gradle中(模块:app) 添加这个: defaultConfig { multiDexEnabled是的 }
第2步:执行此操作:Build =&gt;清洁项目
第3步:执行此操作:Build =&gt;重建项目
答案 48 :(得分:0)
./gradlew :app:assembleStubLiveDebug -debug -stacktrace
或类似(从Android Studio获取任务名称(:app:assembleStubLiveDebug
))。
答案 49 :(得分:0)
当您添加同一个库的两个版本时,这是一个常见的问题..无论是在依赖项还是在库中....我的情况,几乎每次都解决了这个问题..
答案 50 :(得分:0)
在我的项目中,我有两个以上的模块和sdks,我尝试上面列出的所有建议或答案,如
所有这些都是暂时的,但当我打开项目结构(cntrl + altr + shift + s)时,我发现,在我的项目属性中,没有选择像 - - 编译SDK版本,构建sdk版本 - 同样的口味
我更新所有这些并执行清理和重建项目,它对我有用。
答案 51 :(得分:0)
android {
defaultConfig {
multiDexEnabled true
}
}
compile 'com.google.android.gms:play-services:11.0.4'
compile 'com.google.android.gms:play-services-location:11.0.4'
构建清理并构建重建
答案 52 :(得分:0)
升级一些依赖后,我找到了解决方案。我们应该使用最新的播放服务版本。在 build.gradle [app] 依赖项中。
compile 'com.android.support:multidex:1.0.2'
compile 'com.google.android.gms:play-services:11.8.0'
compile 'com.google.firebase:firebase-core:11.8.0'
在 build.gradle [project] 中,我们应该使用最新的Google插件。
classpath 'com.google.gms:google-services:3.1.1'
我也在下面分享代码以便更好地理解。
android {
compileSdkVersion 26
buildToolsVersion '26.0.2'
defaultConfig {
applicationId "com.***.user"
minSdkVersion 17
targetSdkVersion 26
versionCode 26
versionName "1.0.20"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
multiDexEnabled true
vectorDrawables.useSupportLibrary = true
aaptOptions {
cruncherEnabled = false
}
}
buildTypes {
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
答案 53 :(得分:0)
对我来说,问题是我在项目中包含的两个罐子里面有相同的类。
对于其中一个罐子,我需要排除这些类:
jar {
exclude('com/files/to/exclude/**')
}
答案 54 :(得分:0)
在我的情况下,错误是导入依赖项:
实施'com.firebaseui:firebase-ui:2.3.0'
我没有使用它,当我删除它清理项目并重新编译时它开始工作。当然我也做了上面的人所做的事情:
最后......
答案 55 :(得分:0)
可能存在重复的依赖项(可能嵌套在另一个依赖项中)。在命令行中使用“gradlew app:dependencies”来验证所有依赖项。
删除重复项后,问题就解决了。
答案 56 :(得分:0)
我花了3个多小时阅读和测试所有回复。 最后问题是图书馆&#34; joda时间&#34;,
阅读this answer我发现了问题,使用完整堆栈跟踪运行gradle控制台并阅读错误详情。
答案 57 :(得分:0)
apply plugin: 'com.android.application'
android {
compileSdkVersion 27
defaultConfig {
applicationId "com.xyz.name"
minSdkVersion 14
targetSdkVersion 27
versionCode 7
versionName "1.6"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
multiDexEnabled true
}
buildTypes {
release {
minifyEnabled true
shrinkResources true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'com.android.support:appcompat-v7:27.1.0'
implementation 'com.android.support.constraint:constraint-layout:1.0.2'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.android.support.test:runner:1.0.1'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.1'
implementation 'com.android.volley:volley:1.0.0'
implementation 'com.wang.avi:library:2.1.3'
implementation 'com.android.support:design:27.1.0'
implementation 'com.android.support:support-v4:27.1.0'
implementation 'de.hdodenhof:circleimageview:2.1.0'
implementation 'com.github.bumptech.glide:glide:3.7.0'
implementation 'com.theartofdev.edmodo:android-image-cropper:2.6.0'
implementation 'com.loopj.android:android-async-http:1.4.9'
implementation 'com.google.firebase:firebase-messaging:11.8.0'
implementation 'com.felipecsl.asymmetricgridview:library:2.0.1'
implementation 'com.android.support:recyclerview-v7:27.1.0'
implementation 'com.github.darsh2:MultipleImageSelect:3474549'
implementation 'it.sephiroth.android.library.horizontallistview:hlistview:1.2.2'
implementation 'com.android.support:multidex:1.0.1'
}
apply plugin: 'com.google.gms.google-services'
注意:如上所述将所有支持库更新为27.1.0并删除重复项
答案 58 :(得分:0)
上述解决方案都不适合我:启用multiDex,清理,重建,删除.gradle文件,所以我最后做的是创建一个全新的项目,删除 src 目录和用前一个替换它。复制build.gradle(app)所需的所有库,同步它应该构建没有任何错误。
答案 59 :(得分:-1)
在关注依赖关系之前尝试了所有这些。
以下杀手:
//implementation 'org.apache.httpcomponents:httpcore:4.3.1'
//implementation 'org.apache.httpcomponents:httpmime:4.3.1'
现在按预期工作。
答案 60 :(得分:-3)
如果您正在使用
compile ("org.apache.oltu.oauth2:org.apache.oltu.oauth2.client:1.0.1")
你应该把它改成
compile ("org.apache.oltu.oauth2:org.apache.oltu.oauth2.client:1.0.1"){
exclude group:'org.apache.oltu.oauth2' , module: 'org.apache.oltu.oauth2.common'
}
由于客户端lib已经包含公共库,因此它会创建一个重复的类条目,该条目会出错:
无法合并dex