簡體   English   中英

IntelliJ Idea不會在R.java中生成id

[英]IntelliJ Idea not generate id in R.java

我最近切換到IntelliJ Idea 12。

現在在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 {
}

您所觀察到的可能是Idea 12中的設計行為:

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

“這是IDEA 12的行為,它不會在gen文件夾中生成完整的R.java,它會在編譯期間在IDEA的系統目錄中生成它。”

在您的情況下,請查看~/.IntelliJIdea12\\system\\compiler\\YOUR_PROJECT_NAME.RANDOM_STRING\\.generated\\aapt\\YOUR_PROJECT_NAME.RANDOM_STRING\\production\\package\\R.java

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

它還應該通過某種內部的Idea魔術與Idea的自動完成功能,使用搜索功能等相結合。

空的R.java是正常的(雖然誤導,Jetbrains打算改變這種行為)。

我遇到了同樣的問題。 厭倦了Eclipse,我決定嘗試新的IDE。 我為Android創建了一個新項目,並在一個新模塊中創建(嘗試編寫和運行Beginning Android示例)。 當我創建一個新模塊時,它創建了您期望的常用目錄,包括gen。 我復制了源文件,清單和res目錄。 遇到這個問題,IDEA無法弄清楚R.是什么。 我做了以下事情:

  • 刪除android.R的導入
  • 刪除gen目錄

在一個清晰的構建基再次出現並且項目沒問題之后。

Hoje它可以幫助某人。

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

更新:

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

看起來您的布局中沒有任何內容。 如果在項目中展開res / layout目錄,請雙擊main.xml文件。 只需添加一個按鈕或其他東西,並給它一個id。 那應該是好的

如果您的Project java編譯器與您的android java編譯器不同,則會出現此問題。更改項目設置和清理項目正在運行。 如果問題沒有解決,那么轉到項目屬性 - > android - >選擇任何Android版本然后編譯

在注釋中使用“R.id”創建代碼行,然后運行項目。

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

希望它能奏效

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM