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

Val*_*Val 14 java android compilation intellij-idea

我最近切换到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)
Run Code Online (Sandbox Code Playgroud)

R.java文件为空:

    /* This stub is for using by IDE only. It is NOT the R class actually packed into APK */
public final class R {
}
Run Code Online (Sandbox Code Playgroud)

Ale*_*ski 13

您所观察到的可能是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打算改变这种行为).

  • 仅供参考我在~./ IdeaIC12/system/compile-server/PROJECT_NAME_STRING/android/generated_sources/APP_NAME/aapt/com/packagename/R.java中找到了我的R.java! (4认同)