Daj mi znać, gdzie popełniam błąd, aby uzyskać błąd.
Tworzę aplikację, której jedną z czynności jest praca w trybie poziomym. Więc dodałem następujący w pliku AndroidManifest.xml
<activity android:name=".LandScapeImageActivity" android:screenOrientation="landscape"></activity>
Utworzyłem folder taki jak
/ res / layout-land
i dodaj do niego układ o nazwie see_today_landscape_layout.
aw onCreate()
dodałem co następuje
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.see_today_landscape_layout);
....
}
Ale kiedy uruchamiam aplikację, pojawia się następujący błąd
02-06 13:46:14.358: E/AndroidRuntime(13286): FATAL EXCEPTION: main
02-06 13:46:14.358: E/AndroidRuntime(13286): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.mid.kew.activities/com.mid.kew.activities.LandScapeImageActivity}: android.content.res.Resources$NotFoundException: Resource ID #0x7f03002b
02-06 13:46:14.358: E/AndroidRuntime(13286): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2787)
02-06 13:46:14.358: E/AndroidRuntime(13286): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2803)
02-06 13:46:14.358: E/AndroidRuntime(13286): at android.app.ActivityThread.handleRelaunchActivity(ActivityThread.java:4066)
02-06 13:46:14.358: E/AndroidRuntime(13286): at android.app.ActivityThread.access$2400(ActivityThread.java:135)
02-06 13:46:14.358: E/AndroidRuntime(13286): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2140)
02-06 13:46:14.358: E/AndroidRuntime(13286): at android.os.Handler.dispatchMessage(Handler.java:99)
02-06 13:46:14.358: E/AndroidRuntime(13286): at android.os.Looper.loop(Looper.java:144)
02-06 13:46:14.358: E/AndroidRuntime(13286): at android.app.ActivityThread.main(ActivityThread.java:4937)
02-06 13:46:14.358: E/AndroidRuntime(13286): at java.lang.reflect.Method.invokeNative(Native Method)
02-06 13:46:14.358: E/AndroidRuntime(13286): at java.lang.reflect.Method.invoke(Method.java:521)
02-06 13:46:14.358: E/AndroidRuntime(13286): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
02-06 13:46:14.358: E/AndroidRuntime(13286): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
02-06 13:46:14.358: E/AndroidRuntime(13286): at dalvik.system.NativeStart.main(Native Method)
02-06 13:46:14.358: E/AndroidRuntime(13286): Caused by: android.content.res.Resources$NotFoundException: Resource ID #0x7f03002b
02-06 13:46:14.358: E/AndroidRuntime(13286): at android.content.res.Resources.getValue(Resources.java:892)
02-06 13:46:14.358: E/AndroidRuntime(13286): at android.content.res.Resources.loadXmlResourceParser(Resources.java:1869)
02-06 13:46:14.358: E/AndroidRuntime(13286): at android.content.res.Resources.getLayout(Resources.java:731)
02-06 13:46:14.358: E/AndroidRuntime(13286): at android.view.LayoutInflater.inflate(LayoutInflater.java:318)
02-06 13:46:14.358: E/AndroidRuntime(13286): at android.view.LayoutInflater.inflate(LayoutInflater.java:276)
02-06 13:46:14.358: E/AndroidRuntime(13286): at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:207)
02-06 13:46:14.358: E/AndroidRuntime(13286): at android.app.Activity.setContentView(Activity.java:1654)
02-06 13:46:14.358: E/AndroidRuntime(13286): at com.mid.kew.activities.LandScapeImageActivity.onCreate(LandScapeImageActivity.java:103)
02-06 13:46:14.358: E/AndroidRuntime(13286): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1069)
02-06 13:46:14.358: E/AndroidRuntime(13286): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2751)
02-06 13:46:14.358: E/AndroidRuntime(13286): ... 12 more
Przekroczyłem sprawdzone w R.java i ma zasób o numerze ID 7f03002b, którego wyjątek szuka i jest tam obecny ...
Wyczyściłem i odbudowałem projekt powiedzmy 5 razy, ale problem nadal występuje.
Dziwne jest to, że to działało wczoraj i nie działa dzisiaj. Kod jest taki sam.
see_today_landscape_layout.xml
pliku.compile 'com.android.support:appcompat-v7:23.4.0'
jeśli pozostanę zv7:22.2.0'
tym działaOdpowiedzi:
jeśli to się powtórzy, usuń plik r.java. wygeneruje się automatycznie.
źródło
W moim stanie przyczyną był
int
parametr dlaTextView
. Pokażę przykładint i = 5; myTextView.setText(i);
pobiera informacje o błędzie powyżej.
Można to naprawić, konwertując
int
naString
takimyTextView.setText(String.valueOf(i));
Kiedy piszesz
int
, oczekuje zasobu, a nie tekstu, który piszesz. Dlatego zachowaj ostrożność podczas ustawianiaint
jako aString
w systemie Android.źródło
Ponieważ ustawiasz układ jawnie, możesz spróbować umieścić go w domyślnym folderze / layout, a nie w / layout-land, ponieważ tak jest, jeśli chcesz, aby Android automatycznie obsługiwał obrót za Ciebie.
źródło
Spróbuj przenieść plik XML układu z
res/layout-land
dores/layout
folderuźródło
res/layout-sw600dp
abyres/layout
to zadziałało .. Dziękuję za ans ..Może się tak zdarzyć z powodu innego języka w telefonie, dla którego Twój kod nie zawiera zasobu. Na przykład Twój plik preferencji.xml jest umieszczony w xml-en i próbujesz uruchomić aplikację na telefonie z wybranym językiem francuskim, aplikacja ulegnie awarii.
źródło
Otrzymałem ten błąd z jeszcze jednego powodu:
Miałem plik
res/xml/data.xml
i próbowałem go załadowaćResources
klasą taką:Resources.getSystem().getXml(R.xml.data);
Jest to jednak niepoprawne, ponieważ metoda
Resources.getSystem()
zwraca globalny obiekt zasobów udostępnionych, który zapewnia dostęp tylko do zasobów systemowych.Prawidłowy sposób jest następujący (z poziomu Aktywności wewnętrznej):
this.getResources().getXml(R.xml.data);
źródło
W moim przypadku moja wersja Build Tools w moim build.gradle dla modułu aplikacji była nieaktualna w starym projekcie. Aktualizacja rozwiązała problem:
android { ... buildToolsVersion "19.0.1" ...
Zaktualizowano do najnowszej wersji narzędzi do kompilacji (25.0.1), zsynchronizowano projekt i wszystko znów było dobrze.
źródło
Sprawdź, czy import jest prawidłowy. Miałem podobny problem, gdy
R
wskazywałem naR
plik systemowy Androida , a nie lokalny.źródło
Usunąłem foldery
build
w projekcie. Po wyczyszczeniu i przebudowie w Android Studio. Następnie poprawiono błędy w build.gradle i AndroidManifest.źródło
Może to również powodować problemy: przypadkowo jeden z moich układów został zaparkowany w folderze zasobów mojego tabletu, więc ten błąd wystąpił tylko w przypadku układu telefonu. Układ telefonu po prostu nie miał odpowiedniego pliku układu.
Pracowałem ponownie po przeniesieniu pliku układu do odpowiedniego standardowego folderu i po przebudowie projektu.
źródło
Upewnij się, że wskazany R jest właściwy. Miałem problem bardzo podobny do tego, w którym import został wstawiony przez Eclipse, który wskazywał na plik System R, a nie projekt. Wymagało to dużo drapania po głowie. Mam nadzieję że to pomoże.
źródło
Masz orientację ekranu ustawioną na poziomą w pliku xml. Jeśli użyłeś eclipse do wygenerowania tego pliku, utworzyłby się on w folderze res / layout-land /, ale kiedy otworzysz aktywność w trybie portretowym, aplikacja wyszuka xml w folderze res / layout-port / lub zwykłym res / layout / . Jeśli nie masz XML dla trybu portretowego, aplikacja ulegnie awarii.
źródło
Naprawiłem w ten sposób:
Utwórz folder w nazwie katalogu zasobów,
"drawable-nodpi"
a następnie przenieś wszystkie zasoby w tym katalogu z innego katalogu do rysowania.Teraz wyczyść projekt, a następnie odbuduj go. Uruchom ponownie, mając nadzieję, że tym razem zadziała bez żadnego wyjątku nie znaleziono zasobu.
źródło
Wystąpił ten błąd, gdy próbowałem uzyskać dostęp do danych pakietu z One Intent za pomocą getInt („ID”).
Rozwiązałem to używając getString („ID”).
Z Activity1 miałem
Intent intent=new Intent(this,ActivityB.class); intent.putExtra("data",data)// startActivity(intent);
W działaniu B,
Bundle bundle=getIntent().getExtras(); if(extras!=null){ // int x=extras.getInt("Data"); This Line gave me error int x=Integer.parseInt(extras.getString("Data")); // This solved the problem. }
źródło
U mnie unieważnienie pamięci podręcznej i ponowne uruchomienie nie działały. Usunąłem foldery .idea i .gradle. Jeśli to zrobisz, nie zapominaj, że takie rzeczy jak dzienniki kompilacji lub coś innego może zniknąć.
źródło