2016-12-31 14 views
2

この質問の多くのバージョンでは、META-INFファイル名を単純に除外するソリューションがありますが、既に除外されています。この場合、重複ファイルはファイルでさえありませんMETA-INFに関連付けられています。 ./gradlew --stacktraceを実行するとコンパイルは正常に行われますが、デバイス上でアプリケーションを実行すると、重複するファイルの警告が表示されてアプリケーションがクラッシュします。Android Gradle重複ファイルのコピー例外

apply plugin: 'com.android.application' 

android { 
compileSdkVersion 25 
buildToolsVersion "24.0.3" 
defaultConfig { 
    applicationId "rocks.morrisontech.historicsf" 
    minSdkVersion 19 
    targetSdkVersion 25 
    versionCode 1 
    versionName "1.0" 
    testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" 
} 
buildTypes { 
    release { 
     minifyEnabled true 
     shrinkResources true 
     proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
    } 
} 
packagingOptions { 
    exclude 'META-INF/LICENSE' 
    exclude 'META-INF/license.txt' 
    exclude 'META-INF/license' 
} 

dependencies { 

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:25.1.0' 
compile 'com.google.code.gson:gson:2.8.0' 
compile 'com.socrata:soda-api-java:0.9.12' 
compile 'com.google.code.findbugs:jsr305:2.0.1' 
testCompile 'junit:junit:4.12' 
// play-services imports 
compile 'com.google.android.gms:play-services-maps:10.0.1' 

} 

FAILURE:例外で失敗しましたビルドします。

  • 何が悪かったのか: 実行がタスクに失敗しました ':アプリ:transformResourcesWithMergeJavaResForDebug'。

    com.android.build.api.transform.TransformException:com.android.builder.packaging.DuplicateFileException:/ /ユーザー:重複するファイルはAPK COM /日/ジャージ/ IMPL/api.propertiesで ファイル1をコピーQuinn/.gradle/caches/modules-2/files-2.1/com.sun.jersey/jersey-core/1.9.1/cf6c0f8b945081fca5f5eb7417d10d58cefd7035/jersey-core-1.9.1.jar File2:/Users/Quinn/.gradle

  • /caches/modules-2/files-2.1/com.sun.jersey/jersey-bundle/1.9.1/67d37c4e80633a0196b733886441855201742a65/jersey-bundle-1.9.1.jarしてみますと ラン - stacktraceオプションを使ってsを取得するタックトレース。より多くのログ出力を得るには、--infoまたは--debugオプションを指定して実行します。ソーダ-API-javaの:

私が気づいたジャージはcom.socrataの依存関係です0.9.12、と私はその依存関係を削除するとき、私は何の問題もありません。私もソーダ - アンドロイド - APIを使用しようとしましたが、それに似た問題がありました。

+1

'META-INF/DEPENDENCIES' は 'META-INF/NOTICE' は「META-INF/LICENSE'を除外除外除外 '加える代わりに、あなたの –

+0

私はまだ同じ警告を取得しています... – imcraigery

答えて

0

Android Studioでsoda-javaライブラリを使用してプロジェクトを構築しようとしているときに、同じ問題が発生しました。

複数のファイルのコピーがAPKに組み込まれるようです。これは問題を引き起こしており、APKの構築を許可していません。これらのファイルは、アンドロイドセクションの下のアプリのbuild.gradleファイルで除外する必要があります。

packagingOptions { 
    exclude 'META-INF/LICENSE' 
    exclude 'com/sun/jersey/impl/api.properties' 
    exclude 'com/sun/jersey/impl/spi.properties' 
    exclude 'com/sun/jersey/impl/impl.properties' 
    exclude 'META-INF/jersey-module-version' 
} 

基本的に、これらのエラーのそれぞれを調べ、エラーで報告された以下の太字のファイルを追加する必要があります。

com.android.builder.packaging.DuplicateFileException:これは適切な長期的な解決策である場合COM /日/ジャージ/ IMPL/api.properties

APKにコピーされたファイルを複製現在、私はわかりませんよ。しかし、それは私のアプリを書くことを開始し、実行させることです。私はもっ​​と長期間、おそらく適切なソリューションをリリース前にロードしなければならないでしょう。

関連する問題