2010-12-10 125 views
7

這可能是一個比編程錯誤更多的Linux錯誤,但我不確定。 AndroidManifest.xml對我來說有點希臘風格。也就是說,我的程序已經編譯並運行在它目前的狀態下,完全沒問題,甚至在市場上。它已經有一個月左右,因爲我已經打開在Eclipse中源,今天當我打開它,它拒絕編譯並顯示以下錯誤:「AndroidManifest.xml不聲明Java程序包」錯誤

[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 2010-12-12 04:50:58

回答

21

這個例外是不可安卓相關:

[2010-12-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項目),右鍵單擊並選擇「刷新」。

只有在看到文件實際上包含包含的內容後,才能完全解決構建問題。

+0

通過50秒打我一記重拳;) – SRM 2010-12-10 17:24:39

+0

清爽不解決問題。 – 2018-01-21 08:18:27

12

當您在Eclipse之外編輯工作臺資源時發生此錯誤。 要解決此問題,請右鍵單擊項目或編輯的資源並選擇「刷新」。 如果您在Eclipse之外進行了很多編輯,您可以通過轉到Window-> Preferences菜單來啓用自動刷新,然後在Preferences對話框中選擇General> Workspace。 選中「自動刷新」框。

+0

刷新文件/整個項目沒有解決問題。 – Brandon 2010-12-12 04:51:32

+2

我有同樣的錯誤,刷新整個項目爲我解決了它。不要使用[F5],而要使用右鍵單擊菜單>刷新。 – 2011-02-14 00:35:20

+1

太棒了!這對我有效。當我開始在預編譯步驟中編譯AndroidManifest.xml(設置在dev/staging和production之間更改的API密鑰)時,我開始遇到這個問題。項目自動刷新首選項解決了我的問題。謝謝@SRM – webmat 2011-12-22 14:23:57

2

在Eclipse中,如果遇到此問題,有兩種可能的解決方法。

  1. 選擇剛剛在其他提供的答案中提到的「刷新」項目。 (右鍵單擊該項目,然後選擇「刷新」。)

  2. 如果「刷新」不起作用,則嘗試「清理」該項目。 (從菜單欄中選擇「項目」,然後選擇「清潔......」項。請確保您檢查當前項目的清理。)

通常情況下,這兩個步驟將解決90%的編譯問題 - 如果編譯錯誤不是一些代碼更改的直接結果。

0

我有這個確切的問題和刷新項目像一個魅力工作。

0

當您嘗試將基於AndroidStudio的項目導入到eclipse IDE中時,您也可以得到此錯誤爲eclipse。

如果是這種情況,刷新沒有意義。你必須重新排列所有的文件從Java forlder到src文件夾......(其時間切換到Android Studio我猜)

0

沒有答案爲我工作。在我的清單文件中,屬性包丟失了,因此它給出了這個錯誤。

我使用下面的代碼片段添加了這個屬性,它在刷新後工作。

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