"AndroidManifest.xml does not declare a Java package"错误

7

这可能更多是Linux的bug而不是编程错误,但我不确定。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> 

1
刷新项目/文件并不能解决问题... - Brandon
6个回答

21

这个异常和Android无关:

[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'.

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

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

是否会完全解决构建问题直到您查看文件的实际内容才能确定。


你比我快了50秒钟 ;) - SRM

12

当您在Eclipse之外编辑工作台资源时,将出现此错误。 要解决此问题,请右键单击项目或已编辑的资源,然后选择“刷新”选项。 如果您经常在Eclipse之外进行编辑,可以通过转到“窗口”->“首选项”菜单,然后在首选项对话框中选择“常规”>“工作区”来启用自动刷新。 勾选“自动刷新”框。


2
我也遇到了同样的错误,整个项目刷新后问题得到解决。再试一次不要用[F5],而是通过右键菜单> 刷新。 - white_gecko
1
太棒了!这对我有用。当我开始在预编译步骤中编译我的 AndroidManifest.xml(以设置在开发/暂存和生产之间更改的 API 密钥)时,我开始遇到这个问题。项目自动刷新偏好解决了我的问题。感谢 @SRM - webmat

2
在Eclipse中,如果遇到此问题,可能有两种常见方法来解决:
  1. 选择其他提供的答案中提到的“刷新”项目。(右键单击项目,然后选择“刷新”)

  2. 如果“刷新”无效,则尝试“清除”该项目。(从菜单栏选择“项目”,然后选择“清除…”。确保您勾选要清理的当前项目。)

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

0

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

我使用以下代码片段添加了此属性,并在刷新后使其工作。

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

0

当您尝试将基于Android Studio的项目导入到Eclipse IDE中时,还可能会遇到此错误。

如果是这种情况,刷新没有任何意义。您必须将所有文件从Java文件夹重新排列到src文件夹中...(现在是时候转换到Android Studio了)


0

我曾经遇到过这个问题,刷新项目后问题迎刃而解。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接