我在Kotlin android studio中的AndroidManifest.xml中出错。我确实清理,重建和同步了,但我不知道应用程序中发生了什么。
错误:[致命错误] AndroidManifest.xml:62:19:XML文档结构必须在同一实体内开始和结束。
我的AndroidManifest.xml
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="AndroidLayouts">
<shared>
<config />
</shared>
</component>
<component name="AndroidLogFilters">
<option name="TOOL_WINDOW_LOG_LEVEL" value="error" />
<option name="TOOL_WINDOW_CONFIGURED_FILTER" value="No Filters" />
</component>
<component name="CMakeSettings">
<configurations>
<configuration PROFILE_NAME="Debug" CONFIG_NAME="Debug" />
</configurations>
</component>
<component name="ChangeListManager">
<list default="true" id="1da1854f-42d6-4357-9b98-f6c284922eb7" name="Default" comment="" />
<option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" />
<option name="TRACKING_ENABLED" value="true" />
<option name="SHOW_DIALOG" value="false" />
<option name="HIGHLIGHT_CONFLICTS" value="true" />
<option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
<option name="LAST_RESOLUTION" value="IGNORE" />
</component>
<component name="ExternalProjectsData">
<projectState path="$PROJECT_DIR$">
<ProjectState />
</projectState>
</component>
<component name="ExternalProjectsManager">
<system id="GRADLE">
<state>
<projects_view />
</state>
</system>
</component>
<component name="FavoritesManager">
<favorites_list name="khlea" />
</component>
<component name="FileEditorManager">
<leaf SIDE_TABS_SIZE_LIMIT_KEY="300">
<file leaf-file-name="activity_multiplayeronline.xml" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/app/src/main/res/layout/activity_multiplayeronline.xml">
<provider selected="true" editor-type-id="android-designer2">
<state />
</provider>
<provider editor-type-id="text-editor">
<state />
</provider>
</entry>
</file>
<file leaf-file-name="MultiPlayerOnlin.kt" pinned="false" current-in-tab="true">
<entry file="file://$PROJECT_DIR$/app/src/main/java/com/alnwrs/khlea/MultiPlayerOnlin.kt">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="270">
<caret line="6145" column="58" lean-forward="true" selection-start-line="6145" selection-start-column="58" selection-end-line="6145" selection-end-column="58" />
</state>
</provider>
</entry>
</file>
<file leaf->
答案 0 :(得分:1)
那不是你的清单。
清单始终以manifest
标记开头。找到该特定文件花了一段时间:它是workspace.xml
,它是IntelliJ / Android Studio文件。如果清单文件的内容已替换为此文件的内容,则这是一个错误。如果文件在驱动器上被覆盖,则可能要考虑使用其他编辑器,前提是这是一个错误而不是环境问题。
workspace.xml
仅由由IDE使用,而不由项目使用。我不确定这是否是复制粘贴错误(您打开了错误的文件等),或者这是与腐败相关的问题,但这根本不是有效的清单。
This comment还表明,这可能是强制覆盖xml文件的损坏/其他错误。如果这是Android Studio的错误,则您可能想回滚到AS的早期版本,甚至使用其他编辑器/ IDE。
TL; DR:假设您实际上复制的文件是清单XML文件的内容,它已损坏,或者发生了其他事情(老实说,不知道是什么)重写了它。您需要从头开始重新创建它,或者使用您选择的本地历史记录或VCS回滚。
附加说明:
workspace.xml
可在<project root>/.idea/workspace.xml
找到。一些项目会忽略此文件,因此在大多数新近拉出的VCS存储库中可能没有该文件。 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example" >
<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme">
<activity
android:name="com.example.YourLauncherActivity"
android:label="@string/app_name"
>
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
答案 1 :(得分:0)
您发布的代码突然以:
结尾<file leaf-
这是清单文件中结尾的方式吗?如果是这样,那就是引起问题的原因。看起来也不包含通常的清单代码?
答案 2 :(得分:0)
您的xml文件应为:
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="AndroidLayouts">
<shared>
<config />
</shared>
</component>
<component name="AndroidLogFilters">
<option name="TOOL_WINDOW_LOG_LEVEL" value="error" />
<option name="TOOL_WINDOW_CONFIGURED_FILTER" value="No Filters" />
</component>
<component name="CMakeSettings">
<configurations>
<configuration PROFILE_NAME="Debug" CONFIG_NAME="Debug" />
</configurations>
</component>
<component name="ChangeListManager">
<list default="true" id="1da1854f-42d6-4357-9b98-f6c284922eb7" name="Default" comment="" />
<option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" />
<option name="TRACKING_ENABLED" value="true" />
<option name="SHOW_DIALOG" value="false" />
<option name="HIGHLIGHT_CONFLICTS" value="true" />
<option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
<option name="LAST_RESOLUTION" value="IGNORE" />
</component>
<component name="ExternalProjectsData">
<projectState path="$PROJECT_DIR$">
<ProjectState />
</projectState>
</component>
<component name="ExternalProjectsManager">
<system id="GRADLE">
<state>
<projects_view />
</state>
</system>
</component>
<component name="FavoritesManager">
<favorites_list name="khlea" />
</component>
<component name="FileEditorManager">
<leaf SIDE_TABS_SIZE_LIMIT_KEY="300">
<file leaf-file-name="activity_multiplayeronline.xml" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/app/src/main/res/layout/activity_multiplayeronline.xml">
<provider selected="true" editor-type-id="android-designer2">
<state />
</provider>
<provider editor-type-id="text-editor">
<state />
</provider>
</entry>
</file>
<file leaf-file-name="MultiPlayerOnlin.kt" pinned="false" current-in-tab="true">
<entry file="file://$PROJECT_DIR$/app/src/main/java/com/alnwrs/khlea/MultiPlayerOnlin.kt">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="270">
<caret line="6145" column="58" lean-forward="true" selection-start-line="6145" selection-start-column="58" selection-end-line="6145" selection-end-column="58" />
</state>
</provider>
</entry>
</file>
</leaf>
</component>
</project>
答案 3 :(得分:0)
我遇到了同样的问题-大量损坏的文件,类似于原始问题中的文件。令人惊讶的是,一个应用程序正在运行,没有任何问题。另外,在运行相同版本Android Studio的另一台计算机上,我也没有注意到这些问题。
最终我要做的是删除除SDK外与Android Studio有关的所有文件。
删除以下内容:
C:\Users\you\.android*
C:\Users\you\.gradle
C:\Users\you\.m2
下载并安装最新版本
我没有导入现有的用户首选项。 然后,我将Kotlin编译器更新到最新版本,然后重新启动AS。
整个过程不到15分钟,所以还算不错。