AndroidManifest.xml报XML文档结构需在同一实体内起止错误,是什么问题?
报错原因
该错误是XML语法不合法导致的,触发当前报错的直接原因如下:
- 你提供的
AndroidManifest.xml代码结构不完整,仅完成了内部<receiver>、<application>标签的闭合,缺少最外层根标签<manifest>的闭合标签</manifest>,XML解析器读到文档末尾时检测到根标签未闭合,因此抛出XML document structures must start and end within the same entity报错。 - 额外说明:你当前将
.MainActivity以广播接收器<receiver>标签注册,若MainActivity是普通页面组件,该注册类型也存在错误,但这不是触发本次报错的直接原因。
解决方案
- 直接在现有代码的最后一行添加根标签闭合代码即可解决当前报错:
</manifest>
- 若
MainActivity为普通Activity页面,可将对应注册代码替换为正确的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> </activity>
修复后完整可运行的配置示例
<?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.example.4" > <application android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <!-- 如果是广播接收器保留该配置,是Activity则替换为上面的activity标签 --> <receiver android:name=".MainActivity" tools:ignore="IntentFilterExportedReceiver"> <intent-filter> <action android:name="android.intent.action.BOOT_COMPLETED"> </action> </intent-filter> </receiver> </application> </manifest>
内容的提问来源于stack exchange,提问作者Mohammed
相关产品推荐
相关产品推荐

