【问题标题】:"AndroidManifest.xml does not declare a Java package" error“AndroidManifest.xml 未声明 Java 包”错误
【发布时间】:2011-05-23 15:03:17
【问题描述】:

这可能更像是一个 Linux 错误而不是编程错误,但我不确定。 AndroidManifest.xml 对我来说有点希腊化。也就是说,我的程序在当前状态下已经编译和运行,完全正常,甚至在市场上。我在Eclipse中打开源代码已经一个月了,今天打开它,它拒绝编译并显示以下错误:

[2010-12-10 10:43:19 - com.android.ide.eclipse.adt.internal.project.AndroidManifestHelper] Unable to read /media/DATA/code/Android/XXX/AndroidManifest.xml: org.eclipse.core.internal.resources.ResourceException: Resource is out of sync with the file system: '/XXX/AndroidManifest.xml'.

[2010-12-10 10:43:19 - XXX] AndroidManifest.xml does not declare a Java package: Build aborted.

其中 XXX 是包名(以及它所在的目录)。我已经确认该文件在文本编辑器中非常好,甚至在 Eclipse 中刷新了它。什么都没有。

我更新了 ADT...也许 AndroidManifest.xml 的条件改变了?

我的 AndroidManifest.xml:

<?xml version="1.0" encoding="utf-8"?>
<manifest 
 xmlns:android="http://schemas.android.com/apk/res/android"
 package="com.XXX.XXX"
 android:versionCode="2"
 android:versionName="1.0.1"
 >

 <application android:icon="@drawable/icon" android:label="@string/app_name">

     <activity 
      android:name=".XXX"
   android:label="@string/app_name"
   android:screenOrientation="portrait"

   android:theme="@android:style/Theme.NoTitleBar"
   >

   <intent-filter>
    <action android:name="android.intent.action.MAIN" />
    <category android:name="android.intent.category.LAUNCHER" />

   </intent-filter>
  </activity>

  <activity 
   android:name=".FindLocationsActivity"
   android:screenOrientation="portrait"
   >
  </activity>

  <activity 
   android:name=".DeveloperActivity"
   android:screenOrientation="portrait"
  >
  </activity>

  <activity 
   android:name=".LegalActivity"
   android:screenOrientation="portrait"
  >
  </activity>

  <activity 
   android:name=".AboutActivity"
   android:screenOrientation="portrait"
  >
  </activity>

  <activity 
   android:name=".SettingsAndAboutActivity"
   android:screenOrientation="portrait"
   >
  </activity>

  <activity
   android:name=".ResultsPageActivity"
   android:screenOrientation="portrait"
   >
  </activity>

    </application>
<uses-sdk android:minSdkVersion="1" 
/>

</manifest> 

【问题讨论】:

  • 刷新项目/文件并不能解决问题...

标签: android


【解决方案1】:

此异常与 Android 无关:

[2010-12-10 10:43:19 - com.android.ide.eclipse.adt.internal.project.AndroidManifestHelper] 无法读取 /media/DATA/code/Android/XXX/AndroidManifest.xml: org .eclipse.core.internal.resources.ResourceException:资源与文件系统不同步:'/XXX/AndroidManifest.xml'。

这意味着在 Eclipse 编辑器中加载的文件与文件系统上的文件不同。

在导航器或包资源管理器视图中单击资源(或者更好的是 eclipse 项目),右键单击并选择“刷新”。

直到您看到文件实际包含的内容,才能知道这是否会完全解决您的构建问题。

【讨论】:

  • 领先我 50 秒 ;)
【解决方案2】:

当您在 Eclipse 之外编辑工作台资源时会发生此错误。 要解决此问题,请右键单击项目或编辑的资源并选择“刷新”。 如果您在 Eclipse 之外进行了很多编辑,您可以通过转到 Window->Preferences 菜单来启用自动刷新,然后在 Preferences 对话框中,选择 General > Workspace。 选中“自动刷新”框。

【讨论】:

  • 我遇到了同样的错误,刷新整个项目为我解决了这个问题。再试一次,不要使用 [F5],而是使用右键单击菜单>刷新。
  • 太棒了!这对我有用。当我开始在预编译步骤中编译我的 AndroidManifest.xml(以设置在开发/暂存和生产之间更改的 API 密钥)时,我开始遇到这个问题。项目自动刷新首选项解决了我的问题。谢谢@SRM
【解决方案3】:

在 Eclipse 中,如果您遇到此问题,有两种常见的方法可以解决它。

  1. 选择刚刚在其他提供的答案中提到的“刷新”项目。 (右键单击项目,然后选择“刷新”。)

  2. 如果“刷新”不起作用,请尝试“清理”项目。 (从菜单栏中选择“项目”,然后选择“清理...”项。确保选中要清理的当前项目。)

通常,这两个步骤将解决 90% 的编译问题 -- 如果编译错误不是某些代码更改的直接结果。

【讨论】:

    【解决方案4】:

    我遇到了这个确切的问题,刷新项目就像一个魅力。

    【讨论】:

      【解决方案5】:

      当您尝试将基于 AndroidStudio 的项目导入您的 Eclipse IDE 时,您也可能在 Eclipse 中遇到此错误。

      如果是这样的话,刷新就没有意义了。您必须将所有文件从 Java forlder 重新排列到 src 文件夹...(我猜是时候切换到 Android Studio)

      【讨论】:

        【解决方案6】:

        没有答案对我有用。在我的清单文件中,缺少属性包,因此出现此错误。

        我使用下面的代码 sn-p 添加了这个属性,刷新后它就可以工作了。

        <manifest xmlns:android="http://schemas.android.com/apk/res/android" 
                   package="com.example.myapp"  >
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2017-03-04
          • 2015-02-20
          • 1970-01-01
          • 1970-01-01
          • 2018-11-19
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多