数日前、Android Studioをアップグレードしましたが、問題に直面しています。
実際に、実際のデバイスでアプリをテストするためにプロジェクトからAPKファイルをビルドしようとしており、Build-> Build Apkをクリックすると、Message Gradle Buildでいくつかのエラーが表示されます。これらのエラーが発生する理由がわかりませんが、理由も詳しく説明してください。
エラー
エラー:バイトコードをdexに変換する際のエラー:
原因:com.Android.dex.DexException:複数のdexファイルがLcom/Android/volley/VolleyErrorを定義しています。
エラー:タスク ':app:transformClassesWithDexForDebug'の実行に失敗しました。 com.Android.build.api.transform.TransformException:com.Android.ide.common.process.ProcessException:Java.util.concurrent。 ExecutionException:com.Android.ide.common.process.ProcessException:org.gradle.process.internal.ExecException:Process 'command' C:\ Program Files\Java\jdk1.8.0_51\bin\Java.exe ''で終了ゼロ以外の終了値2
build.gradleファイル
apply plugin: 'com.Android.application'
Android {
signingConfigs {
}
compileSdkVersion 23
buildToolsVersion "23.0.1"
defaultConfig {
applicationId "com.dovezeal.gapp"
minSdkVersion 19
targetSdkVersion 23
versionCode 1
versionName "1.0"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-Android.txt'), 'proguard-rules.pro'
}
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_7
targetCompatibility JavaVersion.VERSION_1_7
}
}
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
compile 'com.Android.support:appcompat-v7:23.0.1'
//compile 'com.Android.support:appcompat-v7:23.3.0'
compile 'com.Android.support:support-v4:23.3.0'
compile 'com.Android.support:design:23.0.1'
compile 'com.Android.support:design:23.1.1'
// Volley
compile 'com.Android.volley:volley:1.0.0'
//compile 'com.mcxiaoke.volley:library:1.0.+'
/* compile files('libs/com.mcxiaoke.volley library-1.0.0.jar')*/
// RecyclerView
compile 'com.Android.support:recyclerview-v7:23.0.+'
// A simple way to define and render UI specs on top of your Android UI.
compile 'org.lucasr.dspec:dspec:0.1.1'
compile files('libs/library-1.0.0.jar')
// YouTube Player
compile files('libs/YouTubeAndroidPlayerApi.jar')
// GOSN
/* compile files('libs/gson-2.2.3.jar')*/
}
編集-1
以下のコメントでジャンキ・ガディヤが言ったように、minifyEnabled true
を変更してdefaultConfigの下にmultiDexEnabled true
を追加してみてください
これらの変更により、上記のエラーは両方ともなくなりましたが、次のエラーが発生します。
build.gradleファイル
apply plugin: 'com.Android.application'
Android {
signingConfigs {
}
compileSdkVersion 23
buildToolsVersion "23.0.1"
defaultConfig {
applicationId "com.dovezeal.gapp"
minSdkVersion 19
targetSdkVersion 23
versionCode 1
versionName "1.0"
multiDexEnabled true
}
packagingOptions {
exclude 'META-INF/DEPENDENCIES'
exclude 'META-INF/NOTICE'
exclude 'META-INF/LICENSE'
exclude 'META-INF/license.txt'
exclude 'META-INF/notice.txt'
}
buildTypes {
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-Android.txt')
}
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_7
targetCompatibility JavaVersion.VERSION_1_7
}
}
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
compile 'com.Android.support:appcompat-v7:23.0.1'
//compile 'com.Android.support:appcompat-v7:23.3.0'
compile 'com.Android.support:support-v4:23.3.0'
compile 'com.Android.support:design:23.0.1'
compile 'com.Android.support:design:23.1.1'
// as you already compiled gradle for volley here
compile 'com.Android.volley:volley:1.0.0'
// RecyclerView
compile 'com.Android.support:recyclerview-v7:23.0.+'
compile 'org.lucasr.dspec:dspec:0.1.1'
// you don't need this so comment the below line.
//compile files('libs/library-1.0.0.jar')
// YouTube Player
compile files('libs/YouTubeAndroidPlayerApi.jar')
}
編集:説明
エラー1-2:プロジェクトに65,000を超えるメソッドがあることを意味するため、multiDexEnable true
を設定するように指示しました。
エラー:クラスRequest$Priority.class
の実装を持つライブラリが複数あることを意味するため、コンパイラはどちらを選択するか混乱しています。そのため、error Duplicate entryを示しています。これはpackaging options
によって解決され、重複ファイルを使用できるようになります。
これをビルドグラドルに追加します
dexOptions {
incremental true
javaMaxHeapSize "4g"
}
packagingOptions {
exclude 'META-INF/DEPENDENCIES.txt'
exclude 'META-INF/LICENSE.txt'
exclude 'META-INF/NOTICE.txt'
exclude 'META-INF/NOTICE'
exclude 'META-INF/LICENSE'
exclude 'META-INF/DEPENDENCIES'
exclude 'META-INF/notice.txt'
exclude 'META-INF/license.txt'
exclude 'META-INF/dependencies.txt'
exclude 'META-INF/LGPL2.1'
}
私も同じエラーを受け取っています。コンパイル 'com.google.firebase:firebase-ads:10.2.0'を追加するとき、次のようにすると削除されます:
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.google.firebase:firebase-ads:10.2.0'
}
apply plugin: 'com.google.gms.google-services'**
また、BuildVarientではデバッグモードを使用します。
役立つと思います。
google Play開発者サービスでfirebaseを更新している間、すべてのライブラリを更新しようとします。これは私のために働いた。場合によっては機能することを願っています。