![](/img/trans.png)
[英]“Uses reserved file or directory name 'lib'” error when trying to build android app bundle
[英]Android App Bundle build error: reserved file
新的應用程序發布格式 Android App Bundle 是對 package 應用程序的改進方式。 Android App Bundle 讓您可以更輕松地以更小的應用程序提供出色的體驗,從而支持當今可用的各種 Android 設備。 您無需重構代碼即可開始從較小的應用程序中獲益。
我在嘗試構建我的應用程序 Android 捆綁包時遇到此錯誤:
文件“root/AndroidManifest.xml”使用保留文件或目錄名稱“AndroidManifest.xml”。
APK 生成工作正常。
這是我的項目文件結構:
這是我的 AndroidManifest.xml,位於{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>
在 Facebook 修復 SDK 之前,一個更簡單的修復方法是將其添加到應用 build.gradle 的 android { } 塊中的 PackagingOptions:
android {
packagingOptions {
exclude 'AndroidManifest.xml' //This fixes a bug in FAN 5.0.1
}
}
我只能在構建 App Bundle 時確認這有效,我不知道常規 APK。
就我而言,我的錯誤是由
com.facebook.android:audience-network-sdk
我只將 Audience-network-sdk 從 5.0.0 降級到 4.99.3,一切都開始正常工作。 我希望這對你有幫助。
更新:正如 Sebastian 所說,現在您可以將 Audience-network-sdk 從 5.0.0 更新到 5.1.0。
自 10 月 31 日起,Facebook 發布了 Audience Network SDK 5.1 版。 使用
實現 'com.facebook.android:audience-network-sdk:5.1.0'
為我解決了這個問題。
如果我正確閱讀了文件樹,則您的AndroidManifest.xml
文件位於res
文件夾中,這可能是您看到錯誤的原因。 嘗試將文件放在{ProjectName}/app/src/main
並重建項目。
我遇到了同樣的錯誤。 在獲得工作版本之前必須更改一些內容。 對我來說是:
我希望這可以幫助你。
回答晚了,但我面臨着同樣的問題,但情況略有不同。 我沒有使用上面提到的 facebook 庫,而是使用了其他一些庫,由於構建的信息較少,我無法弄清楚。
我有一個子模塊(比如module1
),它包含另一個庫,該庫進一步具有許多依賴項。 所以我把,
packagingOptions {
exclude 'AndroidManifest.xml'
}
在build.gradle
的module1
,然后問題就解決了。
只是寫這個答案來傳達放入app
的build.gradle
可能無法解決所有情況下的問題。
非常感謝@Jason 指出正確的方向。
對於那些知道為什么 facebook 圖書館有這樣的問題的人:
您可以從maven資源庫下載 aar 文件,然后將其拖入 Android Studio 並展開classes.jar
。 您會看到classes.jar
中有一個清單文件。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.