Подтвердить что ты не робот

Получение android.content.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.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 и у него есть ресурс с ID 7f03002b, который ищет исключение, и он присутствует там...

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

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

4b9b3361

Ответ 1

  • в eclipse, перейдите в Project > Clean...
  • выберите проект, затем нажмите OK
  • перезапустите приложение.

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

Ответ 2

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

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

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

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

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

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

Ответ 3

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

Ответ 4

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

Ответ 5

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

Ответ 6

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

Ответ 7

В моем случае моя версия Build Tools в моем build.gradle для модуля приложения устарела в старом проекте. При обновлении исправлена ​​проблема:

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

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

Ответ 8

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

textview.setText(intvalue + "");

или

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

Ответ 9

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

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

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

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

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

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

Ответ 10

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

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

Ответ 11

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

currectText.setText(progress);

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

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

поэтому сделайте параметр как строку. просто просто используйте оператор "+"

currectText.setText(""+progress);

im, передающий int в методе setText, только что преобразованный в проблему с строкой

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

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

Ответ 12

Eclipse: Project > Clean

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

раздражающий.

Ответ 13

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

Ответ 14

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

Ответ 15

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

Ответ 16

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

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

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

Ответ 17

Я получил эту ошибку, когда пытался получить доступ к данным Bundle из One Intent, используя 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.
}