web-dev-qa-db-ja.com

エントリ名 'AndroidManifest.xml'が衝突しました(Android gradleプラグインを3.6.0に更新した後、ビルドが失敗しました)

Android Studioを3.5(stable)から3.6(stable)に更新しました。

次に、プラグインのアップデートも利用できることを確認したので、「com.Android.tools.build:gradle」のバージョンを3.5.0から3.6.0に更新し、gradleバージョンも5.6.4に更新しました。

プロジェクトをビルドしようとすると、問題が発生します。メッセージで失敗しますエントリ名 'AndroidManifest.xml'が衝突しました

enter image description here

15
Rikin Prajapati

この問題を解決する方法はいくつかあります。

  1. Build.gradleのバージョンを3.5.3に戻す

    dependencies {
           // classpath 'com.Android.tools.build:gradle:3.6.1'       
              classpath 'com.Android.tools.build:gradle:3.5.3'
            }
    
  2. App/build.gradleの下にpackagesOptionsを追加します

    Android {
       ...
    
      packagingOptions {
          exclude 'AndroidManifest.xml'
      }
    
     }
    
  3. Gradle.propertiesで、seNewApkCreatorfalseに設定します。このフラグを追加すると、APKのインストールに関する問題が発生する可能性があります。

    Android.useNewApkCreator=false
    

最後のアプローチとして、サードパーティのライブラリを介してスキャンを実行します。 androidx.core:core-ktxプラグインを確認します。 1.2.0以降のバージョンに更新してみてください。

0
RayChongJH

AndroidManifest.xmlファイルの衝突で同じ問題が発生しました。最初に、useNewApkCreatorの回避策を試してみましたが、それは私が取り組んでいたアプリのバリアントで機能しました。しかし、別のバリアントに切り替えたとき、ビルドは引き続き成功しましたが、アプリはAndroid Studioからのインストールを拒否しました。また、.apkを手動でインストールすると、デバイスで解析エラーが発生しました。

最後に、両方の亜種の.apksを分析したところ、壊れた.apkに誤ったAndroidManifest.xmlが含まれていることがわかりました。 packagingOptionsのマニフェストを除外することもできました。

0
JulleR