Получение android.content.res.Resources $ NotFoundException: исключение, даже если ресурс присутствует в Android - PullRequest
73 голосов
/ 06 февраля 2012

Пожалуйста, дайте мне знать, где я иду не так, чтобы получить ошибку.

Я создаю приложение, в котором одно из его действий должно быть только в ландшафтном режиме. Поэтому я добавил следующее в AndroidManifest.xml file

<activity android:name=".LandScapeImageActivity" android:screenOrientation="landscape"></activity>

Я создал папку, как

/ RES / макет земля

и добавьте в него макет see_today_landscape_layout.

и в onCreate() я добавил следующее

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.see_today_landscape_layout);
....
}

Но когда я запускаю свое приложение, я получаю следующую ошибку

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

Я прошел проверку R.java , и у него есть ресурс с идентификатором 7f03002b, который ищет исключение, и он там присутствует ...

Я очистил и перестроил проект, скажем, 5 раз, но проблема все равно возникает.

Странно, что это работало вчера, а сегодня не работает. Код такой же.

Ответы [ 17 ]

1 голос
/ 09 марта 2016

Я получил эту ошибку по еще одной причине:

У меня был файл res/xml/data.xml, и я пытался загрузить его с классом Resources следующим образом:

Resources.getSystem().getXml(R.xml.data);

Однако это неверно, так как метод Resources.getSystem() возвращает глобальный объект общих ресурсов, который обеспечивает доступ только к системным ресурсам.

Правильный путь следующий (изнутри Действия):

this.getResources().getXml(R.xml.data);
0 голосов
/ 13 марта 2015

У вас в xml установлена ​​ориентация экрана в альбомной ориентации. Если вы использовали eclipse для генерации этого файла, он был бы создан в res / layout-land / folder. Но при открытии активности в портретном режиме приложение будет искать xml в res / layout-port / folder или обычном res / layout / , Если у вас не было xml для портретного режима, ваше приложение зависнет.

0 голосов
/ 11 октября 2017

Я получил эту ошибку, когда пытался получить доступ к данным пакета из одного намерения с помощью getInt («ID»).

Я решил это с помощью getString ("ID").

Из Деятельности 1 у меня было

Intent intent=new Intent(this,ActivityB.class);
intent.putExtra("data",data)// 
startActivity(intent);

В деятельности 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.
}
0 голосов
/ 23 мая 2017

Я исправил это следующим образом:

Создайте папку в вашем каталоге ресурсов с именем "drawable-nodpi" и затем переместите все свои ресурсы в этом каталоге из другого каталога для рисования.

Теперь очистите ваш проект и затем восстановите.Запустите снова, надеемся, что на этот раз все будет работать без каких-либо исключений для ресурса.

0 голосов
/ 24 мая 2016

Я удалил папки build внутри проекта.После того, как почистил и перестроил его в Android Studio.Затем исправлены ошибки в build.gradle и AndroidManifest.

0 голосов
/ 20 апреля 2012

Eclipse: Project> Clean

работал для меня.Я часто получаю это, когда копирую макеты из других приложений в новое приложение.

Раздражает.

0 голосов
/ 06 апреля 2013

Убедитесь, что R, на который вы указываете, является правильным. У меня была проблема, очень похожая на эту, когда Eclipse вставил импорт, который указывал на файл System R, а не на проектный файл. Потребовалось много царапин на голове. Надеюсь, это поможет.

...