新しいアプリ公開形式Android App Bundle)は、アプリをパッケージ化するための改善された方法です。Android App Bundleを使用すると、優れたエクスペリエンスをより簡単に提供できますより小さなアプリサイズで、さまざまなAndroid=今日利用可能なデバイスを可能にします。小さなアプリからメリットを得るのにコードをリファクタリングする必要はありません。
アプリをビルドしようとしてこのエラーが発生しますAndroidバンドル:
ファイル「root/AndroidManifest.xml」は、予約されたファイルまたはディレクトリ名「AndroidManifest.xml」を使用します。
APK生成は正常に動作します。
これは私のプロジェクトファイル構造です:
そして、これは{ProjectName}/app/src/main
の下にある私のAndroidManifest.xmlです。
<?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月31日以降、FacebookはAudience Network SDKのバージョン5.1をリリースしました。使用する
実装 'com.facebook.Android:audience-network-sdk:5.1.0'
私の問題を修正しました。
私の場合、私のエラーは
com.facebook.Android:audience-network-sdk
私はaudience-network-sdkを5.0.0から4.99.3にダウングレードするだけで、すべてが正常に機能し始めます。これがお役に立てば幸いです。
更新:セバスチャンが言ったように、今ではaudience-network-sdkを5.0.0から5.1.0に更新できます。
FacebookがSDKを修正するまでのはるかに単純な修正は、これをアプリのbuild.gradleのAndroid {}ブロックのパッケージングオプションに追加することです。
Android {
packagingOptions {
exclude 'AndroidManifest.xml' //This fixes a bug in FAN 5.0.1
}
}
App Bundleを作成するときにのみ、この動作を確認できます。通常のAPKについては知りません。
ファイルツリーを正しく読んでいる場合は、res
フォルダーにAndroidManifest.xml
ファイルがあります。このため、エラーが表示されます。ファイルを{ProjectName}/app/src/main
に配置して、プロジェクトを再ビルドしてください。
同じバグに遭遇しました。動作するビルドを取得する前にいくつか変更する必要がありました。私にとっては:
これがお役に立てば幸いです。
答えは遅いですが、少し異なるシナリオで同じ問題に直面していました。私は上記のFacebookライブラリを使用していませんでしたが、ビルドによる情報が少ないために理解できなかった他のライブラリでした。
サブモジュールが1つありました(module1
)これには、さらに多くの依存関係を持つ別のライブラリが含まれていました。だから私は、
packagingOptions {
exclude 'AndroidManifest.xml'
}
の中に build.gradle
/module1
その後、問題は解決しました。
app
のbuild.gradle
すべてのケースで問題を解決できない場合があります。
@Jason、正しい方向を示してくれてありがとう。