2012-12-01 16 views
14

ja niedawno włączony do IntelliJ IDEA 12.IntelliJ Idea nie generuje identyfikator w R.java

Teraz stworzył projekt na android i natychmiast pobiegł do problemu: nie wygenerowany identyfikator R.java

Odbuduj projekt nie pomaga.

Może w IntelliJ Idea nie ma dla mnie żadnej subtelności?

błąd:

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) 

plik R.java jest pusty:

/* This stub is for using by IDE only. It is NOT the R class actually packed into APK */ 
public final class R { 
} 
+0

Możesz odznaczyć opcję "użyj kompilacji zewnętrznej" w sekcji Opcje kompilatora –

+0

Odznaczenie. Nie pomogło ... – Val

+0

Mam ten sam problem. Projekt buduje grzywnę w Intellij 11, ale nie kompiluje zasobów w 12 –

Odpowiedz

13

Co ty obserwujesz to prawdopodobnie zachowanie przez zaprojektowaniu w Idei 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."

W Twoim przypadku spojrzeć ~/.IntelliJIdea12\system\compiler\YOUR_PROJECT_NAME.RANDOM_STRING\.generated\aapt\YOUR_PROJECT_NAME.RANDOM_STRING\production\package\R.java

Ten plik powinien być aktualny i powinien zawierać wszystkie wymagane identyfikatory.

Powinien także zostać podłączony do funkcji Idea autouzupełniania, wyszukiwania użycia itp. Za pomocą jakiejś wewnętrznej magii Idea.

Pusty R.java jest normalny (chociaż wprowadza w błąd, a Jetbrains zamierza zmienić to zachowanie).

+4

FYI Znalazłem moje R.java w ~./IdeaIC12/system/compile-server/PROJECT_NAME_STRING/android/generated_sources/APP_NAME/aapt/com/packagename/R.java! – Murphy

+0

Dziękujemy! To doprowadzało mnie do szału. Jest to absolutnie straszny system, biorąc pod uwagę, że niektóre błędy są tak bardzo zależne od wyszukiwania Ridów. – Anthony

-1

Ten problem jest przyjść jeśli projekt kompilator Java zróżnicowanych niż android java compiler.Change Setting projektem i czyste projekt działa. jeśli problem nie jest rozwiązywany, następnie przejdź do właściwości projektu-> android -> wybierz dowolną wersję Androida , a następnie skompiluj

+0

Jak wyczyścić projekt w IntelliJ Idea? – Val

+0

przejdź do opcji menu Projekt wybierz czyste i wybierz swój projekt lub cały projekt -> czyste-> pojedynczy/wszystkie –

+0

może być strukturą projektu IntelliJ IDEA? Nie mogę znaleźć "Menu projektu" – Val

-6

Utwórz linie kodu w komentarzach, w których używasz "R.id", a następnie uruchom projekt.

Następnym razem usuń komentarze i uruchom je ponownie.

Mam nadzieję, że to będzie działać

+0

Dlaczego to musi mi pomóc? To nie jest rozwiązanie. – Val

2

Wpadłem na ten sam problem. Zmęczony Eclipse, postanowiłem spróbować nowego IDE. Stworzyłem nowy projekt dla systemu Android i wewnątrz nowego modułu (próbuję zrobić, aby początkowe przykłady Androida były kompilowane i uruchamiane). Kiedy stworzyłem nowy moduł, stworzyłem zwykłe katalogi, których się spodziewałeś, w tym gen. Skopiowałem pliki źródłowe, manifest i katalog res. W tym numerze pojawiło się pytanie, czy POMYSŁ nie był w stanie określić, czym był R. Zrobiłem następujący:

  • usuń import android.R
  • usuwania katalogu gen

Po wyraźnym build gen pojawił się ponownie, a projekt był w porządku.

Hoje to pomaga komuś.

2

Zamknięcie wszystkich okien intellij, zmiana nazwy folderu projektu i ponowne otwarcie go rozwiązało mój problem.

UPDATE:

Intellij tendencję, aby zapisać wygenerowane pliki w jego własnym folderze w dokumentach użytkowników. Innym sposobem na tę sytuację jest unieważnienie plików pamięci podręcznej. Przejdź do menu plików i wybierz opcję unieważnij pamięć podręczną, a następnie intellij uruchomi się ponownie i ponownie wygeneruje pamięci podręczne i inne wymagane pliki, a wszystko będzie w porządku!

0

Wygląda na to, że Twój układ nie zawiera niczego. Jeśli rozszerzysz katalog res/layout w projekcie, kliknij dwukrotnie plik main.xml. Po prostu dodaj przycisk lub coś i nadaj mu identyfikator. To powinno być w porządku