2012-10-02 31 views
38

我試圖使用的IntelliJ IDEA對Android應用程序與通過它發誓同事的工作,但我無法建立他發給我的任何Android項目,因爲每當我嘗試構建時,我都會收到一個錯誤,說package R does not existIntelliJ IDEA的 - 不能建造任何東西,總是得到「包R不存在」

我一直在嘗試一切我能想到的。實例和其他的東西需要注意的是:

  • 確保我有一個版本的local.properties文件指向我的Android的SDK文件夾的根。

  • 在項目結構對話框中的各種設置擺弄(我就不一一列舉)。

  • 我正在從事的項目有兩個圖書館項目,也使用R類,他們工作正常。

  • IDE中的intellisense識別R類,並提出我期望的東西。

任何幫助將不勝感激。我覺得我錯過了一些基本的東西。

+0

嘗試某種刷新/乾淨?這通常可以解決這些R問題(這對於進口項目來說很常見) – keyser

+0

嘗試並重新嘗試,但不幸。我懷疑有什麼東西了構建路徑或東西 - 它知道將R包是什麼,當我編碼,而不是在它建立...... –

+2

你可能要檢查的項目的編譯路徑(也可能是_ 「通過IDE編譯資源」選項)。 – keyser

回答

34

品牌新的IntelliJ所以我道歉,如果這並不爲你工作。我遇到同樣的問題和解決方案是一個AndroidFacet添加到您的項目。

(我在Mac上,所以這裏的方向可能會稍微偏離,有可能是更好的方法來找到這個窗口,如果是的話讓我知道!)

  1. 右鍵單擊您的項目,並往下走到Open Module Settings(F4似乎也適用)
  2. 在最左邊的列中選擇Facets
  3. 單擊+按鈕
  4. 添加AndroidFacet到您的項目,瞧!
  5. 您可能需要現在導入您的R s,這可能是一個巨大的痛苦......所以希望有人可以用一個簡單的方法附和到自動導入

希望這可以幫助別人!

+0

我不需要去嘗試這是我管理由不同的途徑來解決這個問題,最終(見上面我的意見),但對你起坐爲我工作了詳細的,有益的響應 –

+0

!儘管看起來我要添加的方面與項目本身具有相同的名稱。 (WTF的一個方面?) – user426364

+1

我很確定IntelliJ中的「facet」就像是應用程序的一個方面,它增加了對項目的要求/錯綜複雜。例如,我們正在編寫一個Java應用程序,其「輕微」的一面是它是一個Android Java項目。我想他們用了很多東西,但坦率地說,我只是把它用於Android。 – xbakesx

1

嘗試創建新的項目,然後選擇「從現有的資源項目」

+0

我明白你的建議,但這看起來像是一個警察。我寧願瞭解導致問題的設置,特別是現有的.iml和.idea文件和文件夾已存在。 –

13

如果你遇到了這個與已經建設需要之前,「重建」一包。 建立 - >重建項目。刪除gen不會這樣做,因爲IDEA會將實際生成的R保存在別的地方。

+0

這對我有用。謝謝。 – gnoejh

4

我已經開始玩弄的IntelliJ,因爲我已經受夠了全新的Android Studio的問題,並想嘗試的東西,是一個小更穩定的(我從來沒有真正使用過兩種)。我最終得到了可怕的「軟件包R不存在」錯誤。根據我的經驗,這通常是XML文件中混淆的東西。對我來說,問題實際上是AndroidManifest。我爲ActionBarSherlock創建的Android庫模塊的xml文件。無論出於何種原因,當它創建了AndroidManifest.xml文件也沒有刻意去使用與ABS附帶的AndroidManifest.xml文件,並將其放在以下:當我創造了這個模塊,我選擇文件

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

    <application 
     android:label="@string/app_name" 
     android:icon="@drawable/ic_launcher"> 
     <activity 
      android:name="ACTIVITY_ENTRY_NAME" 
      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> 

>新模塊... 然後我選擇Android模塊下的庫模塊和內容根我瀏覽到ABS文件的位置(其他字段自動填寫正確,我沒有改變它們)。 然後我點擊完成,它提示我是否想保留本地文件或project.properties的內存文件。 我選擇保​​留本地文件,並且在此之後它不會提示我任何其他人。

我不知道爲什麼它搞砸了AndroidManifest.xml文件(也許我上面做錯了...... ???),但要解決它,我只是複製了我已經下載的原始AndroidManifest.xml該庫並替換了搞亂的AndroidManifest.xml文件。之後,我做了Build> Rebuild Project,並解決了「軟件包R不存在」的錯誤。

另一個想法是,@ xbakesx提到了Facets設置,並且對於您用作庫的任何模塊,您應該確保在該模塊的Facets下面選中了「Library module」。當我試圖弄清楚如何在IntelliJ/Android Studio中配置庫時(我真的只使用Eclipse),我在開始時遇到了一些問題。

2

在我的情況下,我不得不刪除intellj編譯器緩存。我的Windows機器上它是somelike這樣的:

%USERPROFILE%\.IdeaIC12\system\compile-server\<my project> 
25

另一種可能的解決方案,這裏列出的是要檢查您AndroidManifest.xml中的包名,您的實際包的匹配:

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

我的軟件包構建良好,直到我重構了軟件包名稱,除了導致錯誤「軟件包R不存在」的清單文件中的軟件包名稱(參見上文)以外的所有重構。

+0

犯了同樣的錯誤...非常感謝 –

+0

救了我的一天! – penduDev

+0

謝謝我發現了這個,我拼命試圖找出這個問題 – maraujop

4

我只是重新啓動IntelliJ,它神奇地解決了。 先試一試。

3

有同樣的問題 - 問題是清單文件沒有正確的默認的活動設置。

+0

Yup也需要更改清單中的包名稱。我認爲在gradle文件中更改軟件包名稱就足夠了。非常感謝。 –

1

添加我的0.02美元,以防別人有我遇到的問題。在我的情況下,我使用IntelliJ生成了「Hello world」應用程序,並忘記將包名稱從「com.example」更改。然後我使用IntelliJ來重構包名稱。這導致錯誤開始發生。

所以我做了一個「com.example」的全局搜索,並在其他人提到的AndroidManifest文件中找到它。但是,改變這並不能解決問題。 「com.example」也在「.idea」目錄下的「workspace.xml」中找到。我改變了他們所有的事件,做了重建,然後又開始工作了!

這看起來像是IntelliJ中的一個錯誤。

5

以我爲例,我加了一些類從另一個項目,我不得不進口從我的實際項目添加到R包:

import com.youcompanyname.yourprojectname.R; 
+0

我不相信這是正確的。 – RyanDawkins

+1

*「從另一個項目中添加了一些類」*它就是這樣,我正處於這種情況,這對我很有用。 **:)** –

3

所有誰已經達到了這一步下來的絕望的人答案:我感到你的痛苦。我花了一個小時無所事事,只是嘗試了上述所有內容以及其他來源的提案。我檢查了所有xml資源兩次,清理緩存,重建十次,甚至重新啓動整個機器。這裏是真正爲我工作:

在「構建變量」(左下角),我選擇了不同的構建變量(在我的情況下發行的,而不是調試)爲有目標的缺失R問題。解決了它。

1

在Android Studio中,當我複製粘貼一個類爲模板,讓另一個類似的類中使用我的問題是,它要求自動導入了一堆東西,其中大部分是不會涉及到新上課,所以我說取消。它也留下了import com.your.packagename.R;中以r wasnt實際上正在導入文件我試圖在使用它。

可以固定一個alt輸入時,點擊R(應當以紅色突出顯示)

3

我已經重構了包名和IntelliJ沒有在清單更新。

所以,如果你已經重構則包名去清單並更新XML文件的根目錄屬性「一攬子」保存並重建它。如果再發生任何錯誤,它可能是一個錯誤的包名的進口(至少這是我的情況),因此只要解決他們

希望這可以幫助任何人

相關問題