Android Gradle构建报错:failed processing manifest 解决求助
针对你遇到的manifest处理失败错误,结合提供的Manifest代码,按以下步骤排查:
检查XML备份规则文件是否存在
你的Manifest里引用了@xml/data_extraction_rules和@xml/backup_rules,确认res/xml/目录下是否存在这两个文件。如果是新建项目后删除了这些文件,或者路径不正确,会直接导致manifest解析失败。可以补全这两个文件的内容(空文件也可暂时应付构建),或者直接删除Manifest中对应的android:dataExtractionRules和android:fullBackupContent属性。移除无用的Native库元数据
两个Activity里的<meta-data android:name="android.app.lib_name" android:value="" />是用于指定Native库名称的,若你的项目没有使用JNI/Native代码,直接删掉这两行即可。空值可能触发manifest解析异常。验证资源引用的正确性
检查以下资源是否存在且拼写无误:@mipmap/ic_launcher和@mipmap/ic_launcher_round:确认mipmap目录下有对应的图标文件@style/Theme.FileManager:确认res/values/styles.xml(或对应的values-vXX目录)中存在这个主题定义
适配Android 12+的存储权限
你的tools:targetApi="31"(对应Android 12),但仍声明了已废弃的WRITE_EXTERNAL_STORAGE权限。若应用需要访问外部存储,针对Android 11+应替换为MANAGE_EXTERNAL_STORAGE权限(注意该权限需在代码中申请,且Google Play审核要求严格),或者调整为更细分的媒体权限(如READ_MEDIA_IMAGES等)。这虽不是直接导致manifest失败的原因,但可能引发后续问题,建议一并处理。清理构建缓存后重建
执行./gradlew clean命令(Android Studio中点击Build -> Clean Project),再重新执行构建操作,排除缓存导致的解析异常。
附你提供的Manifest代码:
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools"> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> <uses-permission android:name="android.permission.VIBRATE"/> <application android:allowBackup="true" android:dataExtractionRules="@xml/data_extraction_rules" android:fullBackupContent="@xml/backup_rules" android:icon="@mipmap/ic_launcher" android:requestLegacyExternalStorage="true" android:label="FileManager" android:supportsRtl="true" android:roundIcon="@mipmap/ic_launcher_round" android:theme="@style/Theme.FileManager" tools:targetApi="31"> <activity android:name=".FileListActivity" android:exported="false"> <meta-data android:name="android.app.lib_name" android:value="" /> </activity> <activity android:name=".MainActivity" android:exported="true"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> <meta-data android:name="android.app.lib_name" android:value="" /> </activity> </application> </manifest>
内容的提问来源于stack exchange,提问作者Roboproffa

