2012-12-01 134 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