14

我最近切换到 IntelliJ Idea 12。

现在在android上创建了一个项目,马上遇到一个问题:not generated id in R.java

重建项目没有帮助。

也许在 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 {
}
4

6 回答 6

13

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

于 2013-02-04T09:19:25.817 回答
2

关闭所有 intellij 窗口,重命名项目文件夹并再次打开它解决了我的问题。

更新:

Intellij 倾向于将生成的文件保存在用户文档中自己的文件夹中。所以这种情况的另一种方法是使缓存文件无效。转到文件菜单并选择无效缓存,然后intellij将重新启动并重新生成缓存和其他所需文件,一切都会好起来的!

于 2013-07-05T14:09:51.390 回答
2

我遇到了同样的问题。厌倦了 Eclipse,我决定尝试一个新的 IDE。我为 Android 创建了一个新项目,并在一个新模块中创建了一个新的模块(试图让开始 Android 示例编译和运行)。当我创建一个新模块时,它创建了您期望的常用目录,包括 gen. 我复制了源文件、清单和 res 目录。遇到这个问题,IDEA 无法弄清楚 R. 是什么。我做了以下事情:

  • 删除 android.R 的导入
  • 删除 gen 目录

在重新出现清晰的构建生成后,该项目还可以。

Hoje 它可以帮助某人。

于 2013-05-30T15:47:19.740 回答
0

看起来您的布局中没有任何内容。如果您在项目中展开 res/layout 目录,请双击 main.xml 文件。只需添加一个按钮或其他东西并给它一个ID。那应该是

于 2014-07-19T04:15:42.247 回答
-1

如果您的项目 java 编译器与您的 android java 编译器不同,则会出现此问题。更改项目设置并清理项目正在运行。如果问题没有解决然后转到项目属性-> android -> 选择任何 android 版本然后编译

于 2012-12-14T17:58:00.807 回答
-5

在您使用“R.id”的注释中创建代码行,然后运行您的项目。

然后下次删除评论并再次运行它。

希望它会奏效

于 2012-12-14T20:08:27.823 回答