如何修复AndroidManifest.xml

时间:2018-11-01 10:36:48

标签: android android-studio kotlin

我在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->

4 个答案:

答案 0 :(得分:1)

那不是你的清单。

清单始终以manifest标记开头。找到该特定文件花了一段时间:它是workspace.xml,它是IntelliJ / Android Studio文件。如果清单文件的内容已替换为此文件的内容,则这是一个错误。如果文件在驱动器上被覆盖,则可能要考虑使用其他编辑器,前提是这是一个错误而不是环境问题。

workspace.xml仅由由IDE使用,而不由项目使用。我不确定这是否是复制粘贴错误(您打开了错误的文件等),或者这是与腐败相关的问题,但这根本不是有效的清单。

This comment还表明,这可能是强制覆盖xml文件的损坏/其他错误。如果这是Android Studio的错误,则您可能想回滚到AS的早期版本,甚至使用其他编辑器/ IDE。

TL; DR:假设您实际上复制的文件是清单XML文件的内容,它已损坏,或者发生了其他事情(老实说,不知道是什么)重写了它。您需要从头开始重新创建它,或者使用您选择的本地历史记录或VCS回滚。


附加说明:

  1. workspace.xml可在<project root>/.idea/workspace.xml找到。一些项目会忽略此文件,因此在大多数新近拉出的VCS存储库中可能没有该文件。
  2. 如果无法还原清单,则至少可以create a new one。基本形式:

<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有关的所有文件。

  1. 卸载Android Studio
  2. 删除以下内容:

    C:\Users\you\.android*
    C:\Users\you\.gradle
    C:\Users\you\.m2
    
  3. 下载并安装最新版本

我没有导入现有的用户首选项。 然后,我将Kotlin编译器更新到最新版本,然后重新启动AS。

整个过程不到15分钟,所以还算不错。