Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

IntelliJ Idea not generate id in R.java

I recently switched to IntelliJ Idea 12.

Now created a project on android and immediately ran into a problem: not generated id in R.java

Rebuild project does not help.

Maybe in IntelliJ Idea have any subtlety is not known to me?

error:

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 file is empty:

    /* This stub is for using by IDE only. It is NOT the R class actually packed into APK */
public final class R {
}
like image 418
Val Avatar asked Dec 01 '12 16:12

Val


People also ask

Can IntelliJ IDEA be used for Java?

As a Java application, IntelliJ IDEA requires a Java runtime environment (JRE). By default, IntelliJ IDEA uses JetBrains Runtime (a fork of OpenJDK), which is included with the IDE. JetBrains Runtime fixes various known OpenJDK and Oracle JDK bugs, and provides better performance and stability.

How do I get Java 16 on IntelliJ?

You can also download Java 16 directly from IntelliJ IDEA. To do so, go to Platform Settings and click on SDKs, then click the '+' sign at the top, choose Download JDK, then select the Vendor and version and the directory to download the JDK to.


2 Answers

What you're observing is probably the by-design behaviour in Idea 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."

In your case, look into ~/.IntelliJIdea12\system\compiler\YOUR_PROJECT_NAME.RANDOM_STRING\.generated\aapt\YOUR_PROJECT_NAME.RANDOM_STRING\production\package\R.java

This file should be up to date and it should contain all the IDs you expect.

It should also be hooked up to Idea's functionalities of autocompletion, usage search etc by some sort of internal Idea magic.

The empty R.java is normal (although misleading, and Jetbrains intends to change this behaviour).

like image 110
Aleksander Adamowski Avatar answered Oct 12 '22 07:10

Aleksander Adamowski


I've run into the same problem. Being tired of Eclipse, I decided to try a new IDE. I created a new project for Android and inside a new module (trying to make Beginning Android examples to compile and run). When I created a new module it created the usual directories that you expect, including gen. I copied the source files, the manifest and the res directory. Run into this issue, were IDEA could not figure out what R. was. I did the following:

  • remove import of android.R
  • delete gen directory

After a clear build gen reappeared and the project was ok.

Hoje it helps somebody.

like image 30
PNeves Avatar answered Oct 12 '22 08:10

PNeves