Получение android.содержание.res.Resources$NotFoundException: исключение, даже если ресурс присутствует в android

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

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

<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.access00(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. в eclipse перейдите в проект > очистить...
  2. выберите проект, затем нажмите OK
  3. перезапустить приложение

если это произойдет снова, удалите r.java файл. он будет генерировать автоматически.


для моего состояния причина принимала на TextView. Позвольте мне показать пример

int i = 5;
myTextView.setText(i);

получает информацию об ошибке выше.

это может быть исправлено путем преобразования int to String такой

myTextView.setText(String.valueOf(i));

как вы пишите int, Он ожидает, что ресурс не тот текст, который вы пишете. Поэтому будьте осторожны при установке int как String в Android.


поскольку вы явно устанавливаете макет, вы можете попробовать поместить его в папку по умолчанию /layout, а не в / layout-land, поскольку это если вы хотите, чтобы Android автоматически обрабатывал вращение для вас.


попробуйте переместить XML макета из res/layout-land до res/layout папку


Это может произойти из-за другого языка в телефоне, для которого ваш код не имеет актива. Например, ваши предпочтения.xml помещается в xml-en, и вы пытаетесь запустить приложение в телефоне, который имеет французский выбран, приложение будет сбой.


в моем случае моя версия инструментов сборки в моей сборке.gradle для модуля приложения устарел в старом проекте. Обновление исправлено проблема:

android {
    ...
    buildToolsVersion "19.0.1"
    ...

обновлен до последней версии build tools (25.0.1) и синхронизировал проект, и все снова было хорошо.


я столкнулся с тем же самым сегодня. В моем случае я читал целочисленное значение из моей базы данных Firebase и передавал его в setText() TextView без преобразования его в целое число. Так что просто используйте:

textview.setText(intvalue + "");

или

textView.setText(String.valueOf(intValue));

проверьте правильность импорта. У меня была аналогичная проблема, где R указывал на систему Android R файл, а не мой локальный.


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

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

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

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

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

this.getResources().getXml(R.xml.data);

Это также может вызвать некоторые проблемы: Случайно один из моих макетов был припаркован в папке "ресурсы планшета", поэтому я получил эту ошибку только с макетом телефона. Макет телефона просто не имел подходящего файла макета.

я снова работал после перемещения файла макета в правильную стандартную папку и следующей перестройки проекта.


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

currectText.setText(progress);

но если параметр не является строкой, он даст вам

android.content.res.Resources$NotFoundException: String resource ID 

так, сделать параметр как строку . это просто просто использовать ' + ' оператор

currectText.setText(""+progress);

я передаю int в метод setText, только что преобразованный в string issue resolve

2-й вариант, если это Integer

currectText.setText(String.valueOf(progress));

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


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


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


я исправил таким образом:

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

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


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

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

от Activity1 у меня было

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.
}

Eclipse: Проект > Очистить

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

раздражает.