web-dev-qa-db-ja.com

Android Studio 2.1.1でAPKファイルをビルド中にエラーが発生しました

数日前、Android Studioをアップグレードしましたが、問題に直面しています。

実際に、実際のデバイスでアプリをテストするためにプロジェクトからAPKファイルをビルドしようとしており、Build-> Build Apkをクリックすると、Message Gradle Buildでいくつかのエラーが表示されます。これらのエラーが発生する理由がわかりませんが、理由も詳しく説明してください。

エラー

  1. エラー:バイトコードをdexに変換する際のエラー:
    原因:com.Android.dex.DexException:複数のdexファイルがLcom/Android/volley/VolleyErrorを定義しています。

  2. エラー:タスク ':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を追加してみてください
これらの変更により、上記のエラーは両方ともなくなりましたが、次のエラーが発生します。

  1. Error:Execution failed for task:app:transformClassesWithJarMergingForDebug ' com.Android.build.api.transform.TransformException:Java.util.Zip.ZipException:duplicate entry:com/Android/volley/Request $ Priority 。クラス
7
Arsh Kaushal

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によって解決され、重複ファイルを使用できるようになります。

29
Janki Gadhiya

これをビルドグラドルに追加します

    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'
    }
1
J.D.

私も同じエラーを受け取っています。コンパイル '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ではデバッグモードを使用します。

役立つと思います。

1
Jatinder Kumar

google Play開発者サービスでfirebaseを更新している間、すべてのライブラリを更新しようとします。これは私のために働いた。場合によっては機能することを願っています。

0
Uma Achanta