web-dev-qa-db-fra.com

Android Erreur de construction du bundle d'applications: fichier réservé

Le nouveau format de publication d'applications, le Android App Bundle, est un moyen amélioré de regrouper votre application. Le Android App Bundle vous permet de fournir plus facilement une expérience formidable dans une application plus petite, permettant une grande variété d'appareils Android disponibles aujourd'hui. Vous n'avez pas besoin de refactoriser votre code pour commencer à bénéficier d'une application plus petite.

Je reçois cette erreur en essayant de créer mon application Android Bundle:

Le fichier 'root/AndroidManifest.xml' utilise le fichier réservé ou le nom de répertoire 'AndroidManifest.xml'.

La génération d'APK fonctionne très bien .

Voici la structure de mon fichier de projet:

enter image description here

Et voici mon AndroidManifest.xml, situé sous {ProjectName}/app/src/main:

<?xml version="1.0" encoding="utf-8"?>
            <manifest xmlns:Android="http://schemas.Android.com/apk/res/Android"
                xmlns:tools="http://schemas.Android.com/tools"
                package="com.XXXX.XXXX"
                Android:installLocation="auto">

                <uses-permission Android:name="Android.permission.INTERNET" />
                <uses-permission Android:name="Android.permission.WAKE_LOCK" />
                <uses-permission Android:name="Android.permission.ACCESS_COARSE_LOCATION"/>

                <!-- These permissions are strongly recommended and will result in higher performance -->
                <uses-permission Android:name="Android.permission.READ_EXTERNAL_STORAGE" />
                <uses-permission Android:name="Android.permission.WRITE_EXTERNAL_STORAGE" />
                <uses-permission Android:name="Android.permission.ACCESS_NETWORK_STATE" />
                <uses-permission Android:name="Android.permission.VIBRATE" />

                <application
                    Android:name="com.app.webview.Application"
                    Android:allowBackup="true"
                    Android:icon="@mipmap/ic_launcher"
                    Android:label="@string/app_name"
                    Android:supportsRtl="true"
                    Android:theme="@style/AppTheme"
                    Android:hardwareAccelerated="true">
                    <activity
                        Android:name="com.app.webview.MainActivity"
                        Android:configChanges="keyboardHidden|orientation|screenSize"
                        Android:label="@string/app_name"
                        Android:launchMode="singleTask">
                        <intent-filter>
                            <action Android:name="Android.intent.action.MAIN" />

                            <category Android:name="Android.intent.category.LAUNCHER" />
                        </intent-filter>

                        <!-- Universal APP Link -->
                        <intent-filter>
                            <action Android:name="Android.intent.action.VIEW" />

                            <category Android:name="Android.intent.category.DEFAULT" />
                            <category Android:name="Android.intent.category.BROWSABLE" />

                            <data Android:scheme="http" />
                            <data Android:scheme="https" />
                            <data Android:Host="@string/app_Host" />
                        </intent-filter>
                    </activity>

                    <!-- Push -->
                    <!-- Services that handles incoming message -->
                    <service
                        Android:name="com.app.webview.Providers.FCM.FcmListenerService">
                        <intent-filter>
                            <action Android:name="com.google.firebase.MESSAGING_EVENT" />
                        </intent-filter>
                    </service>

                    <!-- Called if InstanceID token is updated -->
                    <!-- This may occur if the security of the previous token had been compromised -->
                    <service
                        Android:name="com.app.webview.Providers.FCM.FcmInstanceIDListenerService"
                        Android:exported="true">
                        <intent-filter>
                            <action Android:name="com.google.firebase.INSTANCE_ID_EVENT" />
                        </intent-filter>
                    </service>

                    <!-- Facebook Config -->
                    <meta-data
                        Android:name="com.facebook.sdk.ApplicationId"
                        Android:value="@string/id_facebook" />

                    <activity
                        Android:name="com.facebook.FacebookActivity"
                        Android:configChanges="keyboard|keyboardHidden|screenLayout|screenSize|orientation"
                        Android:label="@string/app_name"
                        Android:theme="@Android:style/Theme.Translucent.NoTitleBar"
                        tools:replace="Android:theme" />

                    <provider
                        Android:name="com.facebook.FacebookContentProvider"
                        Android:authorities="@string/facebook_provider"
                        Android:exported="true"
                        tools:replace="Android:authorities" />

                    <!-- Fabric -->
                    <meta-data
                        Android:name="io.fabric.ApiKey"
                        Android:value="XXXX" />
                </application>  
            </manifest>
10
Javier Marín

Depuis le 31 octobre, Facebook a publié la version 5.1 du SDK Audience Network. En utilisant

implémentation 'com.facebook.Android:audience-network-sdk:5.1.0'

résolu le problème pour moi.

5
Sebastian

Dans mon cas, mon erreur a été causée par

com.facebook.Android:audience-network-sdk

Je rétrograde uniquement audience-network-sdk de 5.0.0 à 4.99.3 et tout commence à bien fonctionner. J'espère que cela vous aidera.

Mise à jour: comme l'a dit Sebastian, vous pouvez maintenant mettre à jour audience-network-sdk de 5.0.0 à 5.1.0.

8
Fabio

Une solution beaucoup plus simple jusqu'à ce que Facebook corrige le SDK serait d'ajouter ceci aux options de packaging dans le bloc Android {} du build.gradle de votre application:

Android {
   packagingOptions {
      exclude 'AndroidManifest.xml' //This fixes a bug in FAN 5.0.1
   }
}

Je ne peux que confirmer que cela fonctionne lors de la création d'un bundle d'applications, je ne connais pas un APK normal.

5
Jason Sznol

Si je lis bien l'arborescence des fichiers, vous avez votre AndroidManifest.xml fichier dans le dossier res, ce qui explique pourquoi vous voyez l'erreur. Essayez de mettre le fichier dans {ProjectName}/app/src/main et reconstruisez le projet.

1
Noterezeck

J'ai rencontré le même bug. J'ai dû changer quelques choses avant d'obtenir une version fonctionnelle. Pour moi, c'était:

  1. rétrograder facebook audience-network-sdk de 5.0.0 à 4.28.2
  2. déclasser okio de 2.1.0 à 2.0.0
  3. mise à jour de la configuration proguard pour okio, okhttp et retrofit
  4. ne pas utiliser R8

J'espère que ceci vous aide.

0
ham