Получение 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 ответов
- в eclipse перейдите в проект > очистить...
- выберите проект, затем нажмите OK
- перезапустить приложение
если это произойдет снова, удалите 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 помещается в 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: Проект > Очистить
работал для меня. Я часто получаю это, когда копирую макеты из других приложений в новое приложение.
раздражает.