2012-12-01 172 views
14

不會產生ID最近我切換到IntelliJ IDEA的12的IntelliJ IDEA在R.java

現在創建了一個項目在Android很快就遇到了一個問題:在R.java

重建項目未生成的ID沒有幫助。

也許在IntelliJ Idea有什麼妙不可言的嗎?

錯誤:

12-01 16:08:15.067: ERROR/AndroidRuntime(7108): FATAL EXCEPTION: main 
android.content.res.Resources$NotFoundException: String resource ID #0x1 
at android.content.res.Resources.getText(Resources.java:266) 
at android.widget.TextView.setText(TextView.java:3624) 
at com.example.poem_new.MyActivity.invalidateCounters(MyActivity.java:41) 
at com.example.poem_new.MyActivity.access$000(MyActivity.java:11) 
at com.example.poem_new.MyActivity$1.onTextChanged(MyActivity.java:29) 
at android.widget.TextView.sendOnTextChanged(TextView.java:8027) 
at android.widget.TextView.handleTextChanged(TextView.java:8074) 
at android.widget.TextView$ChangeWatcher.onTextChanged(TextView.java:8454) 
at android.text.SpannableStringBuilder.sendTextChange(SpannableStringBuilder.java:892) 
at android.text.SpannableStringBuilder.change(SpannableStringBuilder.java:352) 
at android.text.SpannableStringBuilder.change(SpannableStringBuilder.java:266) 
at android.text.SpannableStringBuilder.replace(SpannableStringBuilder.java:443) 
at android.text.SpannableStringBuilder.replace(SpannableStringBuilder.java:420) 
at android.text.SpannableStringBuilder.replace(SpannableStringBuilder.java:29) 
at android.view.inputmethod.BaseInputConnection.replaceText(BaseInputConnection.java:669) 
at android.view.inputmethod.BaseInputConnection.commitText(BaseInputConnection.java:188) 
at com.android.internal.widget.EditableInputConnection.commitText(EditableInputConnection.java:149) 
at com.android.internal.view.IInputConnectionWrapper.executeMessage(IInputConnectionWrapper.java:315) 
at com.android.internal.view.IInputConnectionWrapper$MyHandler.handleMessage(IInputConnectionWrapper.java:85) 
at android.os.Handler.dispatchMessage(Handler.java:99) 
at android.os.Looper.loop(Looper.java:154) 
at android.app.ActivityThread.main(ActivityThread.java:4945) 
at java.lang.reflect.Method.invokeNative(Native Method) 
at java.lang.reflect.Method.invoke(Method.java:511) 
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551) 
at dalvik.system.NativeStart.main(Native Method) 

R.java文件是空的:

/* This stub is for using by IDE only. It is NOT the R class actually packed into APK */ 
public final class R { 
} 
+0

您可以取消選中編譯器選項部分中的「使用外部構建」 –

+0

未選中。沒有幫助... – Val

+0

我有這個相同的問題。該項目在Intellij 11中建立良好,但不編譯12 –

回答

13

什麼你觀察可能是由設計行爲理念12:

http://youtrack.jetbrains.com/issue/IDEA-99045

"It is behaviour of IDEA 12, it doesn't generate full R.java in gen folder, it generates it in the IDEA's system dir during compilation."

在你的情況,考慮~/.IntelliJIdea12\system\compiler\YOUR_PROJECT_NAME.RANDOM_STRING\.generated\aapt\YOUR_PROJECT_NAME.RANDOM_STRING\production\package\R.java

此文件應該是最新的,它應該包含您期望的所有ID。

它也應該通過某種內部的創意魔術與Idea的自動完成,使用搜索等功能掛鉤。

空R.java是正常的(儘管誤導,Jetbrains打算改變這種行爲)。

+4

僅供參考我在〜。/ IdeaIC12/system/compile-server/PROJECT_NAME_STRING/android/generated_sources/APP_NAME/aapt/com/packagename/R.java中找到了我的R.java! – Murphy

+0

謝謝!這讓我很難找到這個。這是一個絕對糟糕的系統,因爲一些錯誤依賴於查找R ID。 – Anthony

-1

這個問題來了,如果你的項目的Java編譯器是比型動物在Android的Java compiler.Change的項目設置和清潔項目正在工作。 如果問題沒有解決,那麼轉到項目屬性 - >安卓 - >選擇任何安卓版本 然後編譯

+0

如何在IntelliJ Idea中清理項目? – Val

+0

轉到項目菜單選項選擇清潔並選擇您的項目或所有項目項目 - >清潔 - >單/所有 –

+0

可能是IntelliJ IDEA項目的結構?我找不到「項目菜單」 – Val

-6

在註釋中使用「R.id」代碼行,然後運行您的項目。

然後下次刪除評論並再次運行它。

希望它會工作

+0

爲什麼這必須幫助我?這不是一個解決辦法。 – Val

2

我遇到了同樣的問題。對Eclipse感到厭倦,我決定嘗試一個新的IDE。 我爲Android創建了一個新項目,並在一個新模塊中(試圖使Beginning Android示例可以編譯並運行)。當我創建一個新模塊時,它創建了您期望的常用目錄,包括gen。我複製了源文件,清單和res目錄。 遇到這個問題,IDEA無法弄清楚R.是什麼。我做了以下內容:android.R

  • 刪除根目錄
    • 刪除導入一個明確構建根再次出現後,該項目是確定的。

      Hoje它幫助某人。

    2

    關閉所有intellij窗口,重命名項目文件夾並再次打開它解決了我的問題。

    UPDATE:

    的IntelliJ傾向於在它自己的文件夾中生成的文件保存在用戶的文檔。所以這種情況的另一種方法是使緩存文件無效。轉到文件菜單並選擇無效緩存,然後intellij將重新啓動並重新生成緩存和其他所需文件,一切都會好的!

    0

    看起來你的佈局沒有任何東西。如果在項目中展開res/layout目錄,請雙擊main.xml文件。只需添加一個按鈕或一些東西,並給它一個ID。這應該worl