Ответ 1
compile 'com.google.android.gms:play-services:+'
compile files('libs/google-play-services.jar')
Я думаю, вы должны удалить одну из этих строк.
Я впервые использую Android Studio, и после импорта проекта я получил следующую ошибку (ранее это был проект eclipse, в котором у меня тоже были проблемы).
Вот приведенная информация:
Error:Execution failed for task ':app:dexDebug'.
> com.android.ide.common.internal.LoggedErrorException: Failed to run command:
/home/crash-id/Development/SDK/adt-bundle-linux-x86_64-20140702/sdk/build-tools/21.1.2/dx --dex --no-optimize --output /home/crash-id/AndroidstudioProjects/LocalSin/app/build/intermediates/dex/debug --input-list=/home/crash-id/AndroidstudioProjects/LocalSin/app/build/intermediates/tmp/dex/debug/inputList.txt
Error Code:
2
Output:
UNEXPECTED TOP-LEVEL EXCEPTION:
com.android.dex.DexException: Multiple dex files define Lcom/google/ads/AdRequest$ErrorCode;
at com.android.dx.merge.DexMerger.readSortableTypes(DexMerger.java:596)
at com.android.dx.merge.DexMerger.getSortedTypes(DexMerger.java:554)
at com.android.dx.merge.DexMerger.mergeClassDefs(DexMerger.java:535)
at com.android.dx.merge.DexMerger.mergeDexes(DexMerger.java:171)
at com.android.dx.merge.DexMerger.merge(DexMerger.java:189)
at com.android.dx.command.dexer.Main.mergeLibraryDexBuffers(Main.java:454)
at com.android.dx.command.dexer.Main.runMonoDex(Main.java:303)
at com.android.dx.command.dexer.Main.run(Main.java:246)
at com.android.dx.command.dexer.Main.main(Main.java:215)
at com.android.dx.command.Main.main(Main.java:106)
:app:dexDebug
UNEXPECTED TOP-LEVEL EXCEPTION:
com.android.dex.DexException: Multiple dex files define Lcom/google/ads/AdRequest$ErrorCode;
at com.android.dx.merge.DexMerger.readSortableTypes(DexMerger.java:596)
at com.android.dx.merge.DexMerger.getSortedTypes(DexMerger.java:554)
at com.android.dx.merge.DexMerger.mergeClassDefs(DexMerger.java:535)
at com.android.dx.merge.DexMerger.mergeDexes(DexMerger.java:171)
at com.android.dx.merge.DexMerger.merge(DexMerger.java:189)
at com.android.dx.command.dexer.Main.mergeLibraryDexBuffers(Main.java:454)
at com.android.dx.command.dexer.Main.runMonoDex(Main.java:303)
at com.android.dx.command.dexer.Main.run(Main.java:246)
at com.android.dx.command.dexer.Main.main(Main.java:215)
at com.android.dx.command.Main.main(Main.java:106)
FAILED
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':app:dexDebug'.
> com.android.ide.common.internal.LoggedErrorException: Failed to run command:
/home/crash-id/Development/SDK/adt-bundle-linux-x86_64-20140702/sdk/build-tools/21.1.2/dx --dex --no-optimize --output /home/crash-id/AndroidstudioProjects/LocalSin/app/build/intermediates/dex/debug --input-list=/home/crash-id/AndroidstudioProjects/LocalSin/app/build/intermediates/tmp/dex/debug/inputList.txt
Error Code:
2
Output:
UNEXPECTED TOP-LEVEL EXCEPTION:
com.android.dex.DexException: Multiple dex files define Lcom/google/ads/AdRequest$ErrorCode;
at com.android.dx.merge.DexMerger.readSortableTypes(DexMerger.java:596)
at com.android.dx.merge.DexMerger.getSortedTypes(DexMerger.java:554)
at com.android.dx.merge.DexMerger.mergeClassDefs(DexMerger.java:535)
at com.android.dx.merge.DexMerger.mergeDexes(DexMerger.java:171)
at com.android.dx.merge.DexMerger.merge(DexMerger.java:189)
at com.android.dx.command.dexer.Main.mergeLibraryDexBuffers(Main.java:454)
at com.android.dx.command.dexer.Main.runMonoDex(Main.java:303)
at com.android.dx.command.dexer.Main.run(Main.java:246)
at com.android.dx.command.dexer.Main.main(Main.java:215)
at com.android.dx.command.Main.main(Main.java:106)
* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.
BUILD FAILED
Приложение build.gradle:
apply plugin: 'com.android.application'
android {
compileSdkVersion 21
buildToolsVersion "21.1.2"
defaultConfig {
applicationId "com.myapp.test"
minSdkVersion 11
targetSdkVersion 14
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
}
}
}
dependencies {
compile 'com.android.support:support-v4:18.0.0'
compile 'com.android.support:appcompat-v7:21.0.3'
compile 'com.google.android.gms:play-services:+'
compile files('libs/google-play-services.jar')
compile files('libs/httpcore-4.3.2.jar')
compile files('libs/httpmime-4.3.4.jar')
}
И проект build.gradle:
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:1.0.0'
}
}
allprojects {
repositories {
jcenter()
}
}
Есть ли у вас какое-то представление о том, что может быть проблемой и как ее можно решить? Хорошим объяснением проблемы было бы полезно, так как я новичок в Android Studio. Спасибо заранее:)
compile 'com.google.android.gms:play-services:+'
compile files('libs/google-play-services.jar')
Я думаю, вы должны удалить одну из этих строк.
cd android/& &./gradlew clean && cd.. && реактивный анкронд-андроид
У меня была ошибка Android Studio: выполнение выполнено для задачи ": app: dexDebug", который я решил решить, установив для параметра multiDexEnabled значение true
defaultConfig {
// Enabling multidex support.
multiDexEnabled true
}
В моем проекте использовалось слишком много библиотеки, поэтому я превысил ограничение на DeX 65K, установленное Android для получения дополнительной информации: http://developer.android.com/tools/building/multidex.html
не включать всю библиотеку gms: compile 'com.google.android.gms:play-services:+'
Вместо этого просто используйте необходимые компоненты следующим образом:
compile 'com.google.android.gms:play-services-ads:8.3.0'
compile 'com.google.android.gms:play-services-analytics:8.3.0'
compile 'com.google.android.gms:play-services-gcm:8.3.0'
В ответе @Drivers указано, что в данном проекте не должно быть нескольких зависимостей, имеющих одно и то же пространство имен. В приведенном выше случае библиотека Google Play Services была включена дважды, что вызвало конфликт имен пакетов.
То же самое может случиться и с несколькими модулями (приложениями, библиотеками и т.д.) в том же проекте. Итак, убедитесь, что для каждого файла AndroidManifest.xml
имя package
уникально для всех модулей: -
AndroidManifest.xml:
<manifest
xmlns:android="http://schemas.android.com/apk/res/android"
package="this.must.be.unique.across.modules">
Это происходит потому, что вы дублируете зависимость библиотеки внутри приложения build.gradle в студии android.
Android Studio автоматически добавляет зависимости для всех файлов в папке libs, используя
compile fileTree(dir: 'libs', include: ['*.jar'])
или в вашем конкретном случае зависимость добавляется с помощью
compile files('libs/google-play-services.jar')
^ Теперь, когда вы снова пытаетесь добавить зависимость, используя
compile 'com.google.android.gms:play-services:+'
вы получите сообщение об ошибке.
Решение
Удалите все дубликаты зависимостей, добавленные внутри "app build.gradle", и вам должно быть хорошо, чтобы идти. В вашем случае удалите
compile 'com.google.android.gms:play-services:+'
У меня был код ниже в файле gradle и такая же ошибка.
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:23.0.0'
compile 'com.google.android.gms:play-services-ads:8.3.0'
}
dependencies {
compile 'com.android.support:design:23.+'
}
dependencies {
compile 'com.android.support:design:23.+'
}
dependencies {
compile 'com.android.support:design:23.+'
}
Удалены последние 3 зависимостей и теперь работают!