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


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

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

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

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

/res / layout-land

и добавить макет под названием 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 65

17 ответов:

  1. в eclipse перейдите в проект > очистить...
  2. выберите свой проект, затем нажмите OK
  3. перезапустить приложение

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

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

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

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

это можно исправить путем преобразования int до 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/.Но при открытии activity в портретном режиме приложение будет искать 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: Project > Clean

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

раздражает.