2017-12-18 21 views
0

コードを変更して署名済みのAPKを再生成するまで、すべてのことは完全にうまくいきました。私はアンドロイドのスタジオでコードを生成しようとすると、今、私は次の例外を取得:アンドロイドスタジオで署名付きのAPKを生成すると、DexExceptionが発生する

Error:Execution failed for task ':app:transformClassesWithDexForRelease'. 
> com.android.build.api.transform.TransformException: 
com.android.ide.common.process.ProcessException: 
java.util.concurrent.ExecutionException: com.android.dex.DexException: 
Multiple dex files define Lcom/commonsware/cwac/provider/StreamStrategy; 

この例外は、私に何か新しいものです。ここに私のGradleファイルと依存関係には、エラーの原因になる可能性がどのような

apply plugin: 'com.android.application' 

android { 
compileSdkVersion 25 
buildToolsVersion "25.0.2" 

aaptOptions { 
    noCompress 'pdf' 
} 
useLibrary 'org.apache.http.legacy' 

defaultConfig { 
    applicationId "com.user.plansmart" 
    minSdkVersion 15 
    targetSdkVersion 25 
    versionCode 23 
    versionName "1.2.6" 
    testInstrumentationRunner 
"android.support.test.runner.AndroidJUnitRunner" 
} 
buildTypes { 
    release { 
     minifyEnabled false 
     proguardFiles getDefaultProguardFile('proguard-android.txt'), 
'proguard-rules.pro' 
    } 
} 
} 

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' 
}) 
compile files('D:/AndroidStudioProjects/PlanSmart/libs/itextpdf-5.4.0.jar') 
compile files('D:/AndroidStudioProjects/PlanSmart/libs/cwac-provider- 
0.5.2.jar') 
compile files('D:/AndroidStudioProjects/PlanSmart/libs/volley.jar') 
compile 'com.android.support:appcompat-v7:25.3.1' 
compile 'com.android.support:design:25.3.1' 
compile 'com.google.android.gms:play-services-ads:11.2.0' 
compile 'com.readystatesoftware.sqliteasset:sqliteassethelper:+' 
compile 'com.android.support.constraint:constraint-layout:1.0.0-alpha7' 
compile 'com.commonsware.cwac:provider:0.5.2' 
compile 'com.mcxiaoke.volley:library:1.0.1' 
testCompile 'junit:junit:4.12' 
} 

です。それを理解することはできません。誰も私を助けることができます。

+0

としてそれを定義しました。 https://stackoverflow.com/questions/26609734/how-to-enable-multidexing-with-the-new-android-multidex-support-library – RejoylinLokeshwaran

+0

この行を追加するmultiDexEnabledあなたのgradleではtrueです。 –

答えて

0

あなたのbuild.gradleの依存関係からcompile files('D:/AndroidStudioProjects/PlanSmart/libs/cwac-provider-0.5.2.jar')を削除してください。

あなたはすでにこのリンクをチェックして、multidexを有効にしてくださいcompile 'com.commonsware.cwac:provider:0.5.2'

0

はdefaultConfigブロックの中にあなたのGradleファイルにmultiDexEnabled trueを追加

あなたのGradleファイルに
configurations { 
compile.exclude group: 'com.commonsware' , module:'cwac' 
} 
0

これを追加します。

defaultConfig { 
    applicationId "com.user.plansmart" 
    minSdkVersion 15 
    targetSdkVersion 25 
    versionCode 23 
    versionName "1.2.6" 
    multiDexEnabled true 
    testInstrumentationRunner 
"android.support.test.runner.AndroidJUnitRunner" 
} 
0

あなたgradleファイルに次の行を追加します。

defaultConfig { 
    applicationId "com.user.plansmart" 
    minSdkVersion 15 
    targetSdkVersion 25 
    versionCode 23 
    versionName "1.2.6" 

    multiDexEnabled true 
} 

が、これは役立ちます願っています。

+0

このエラーが発生するエラー: ':app:transformClassesWithJarMergingForRelease'タスクの実行に失敗しました。 > com.android.build.api.transform.TransformException:java.util.zip.ZipException:重複エントリ:com/commonsware/cwac/provider/AssetStrategy.class – pamo

+0

ここから2つの提案を適用して問題が解決しました。ところで、なぜ "multiDexEnabled true"が重要か教えてください。 – pamo

+0

@pamo 65kを超えるメソッドしか持っていない場合は、 'multiDexEnabled'を使う必要があります – DeKaNszn

関連する問題