这可能更像是一个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>
答案 0 :(得分:21)
此例外与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项目),右键单击并选择“刷新”。
在您看到文件实际包含的内容之前,是否会完全解决您的构建问题是不可知的。
答案 1 :(得分:12)
在Eclipse之外编辑工作台资源时会发生此错误。 要解决此问题,请右键单击项目或已编辑的资源,然后选择“刷新”。 如果您在Eclipse之外编辑很多,可以通过转到Window-&gt; Preferences菜单启用自动刷新,然后在Preferences对话框中选择General&gt;工作区。 选中“自动刷新”框。
答案 2 :(得分:2)
在Eclipse中,如果遇到此问题,有两种常见的方法可以解决它。
选择其他提供的答案中刚刚提到的“刷新”项目。 (右键单击项目,然后选择“刷新”。)
如果“刷新”不起作用,请尝试“清理”项目。 (从菜单栏中选择“项目”,然后选择“清洁...”项目。确保检查当前项目以进行清理。)
通常,这两个步骤将解决90%的编译问题 - 如果编译错误不是某些代码更改的直接结果。
答案 3 :(得分:0)
我遇到了这个确切的问题,让项目更新起来就像一个魅力。
答案 4 :(得分:0)
当您尝试将基于AndroidStudio的项目导入eclipse IDE时,您也可以获得此错误。
如果是这种情况,刷新就没有意义了。你必须重新安排从Java forlder到src文件夹的所有文件...(我猜它是时候切换到Android Studio了)
答案 5 :(得分:0)
没有回答对我有用。在我的清单文件中,缺少属性包,因此它给出了此错误。
我使用以下代码段添加了此属性,并在刷新后工作。
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.myapp" >