Ответ 1
- в eclipse, перейдите в Project > Clean...
- выберите проект, затем нажмите OK
- перезапустите приложение.
если это произойдет снова, удалите файл r.java. он будет генерироваться автоматически.
Пожалуйста, дайте мне знать, где я ошибаюсь, чтобы получить ошибку.
Я создаю приложение, которое имеет один из своих действий только в ландшафтном режиме. Поэтому я добавил следующее в файл 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 раз, но проблема все же возникает.
Странный момент в том, что вчера он работал, и сегодня он не работает. Код тот же.
если это произойдет снова, удалите файл r.java. он будет генерироваться автоматически.
Для моего условия причиной стал параметр int
для TextView
. Позвольте мне показать пример
int i = 5;
myTextView.setText(i);
получает информацию об ошибке выше.
Это можно исправить путем преобразования int
в String
как это
myTextView.setText(String.valueOf(i));
Когда вы пишете int
, он ожидает ресурс, а не текст, который вы пишете. Поэтому будьте осторожны при установке int
как String
в Android.
Поскольку вы явно устанавливаете макет, вы можете попробовать и поместить его в папку по умолчанию/макете, не находящуюся в /layout -land, так как это означает, что вы хотите, чтобы Android автоматически обрабатывал поворот для вас.
Попробуйте переместить макет xml из res/layout-land
в папку res/layout
Убедитесь, что ваш импорт верен. У меня была аналогичная проблема, где R
указывал на Android системы R
- файла, а не мой локальный.
Это может произойти из-за другого языка в телефоне, для которого у вашего кода нет актива. Например, ваш preference.xml помещается в xml-en, и вы пытаетесь запустить свое приложение на телефоне с французами, приложение будет аварийно.
В моем случае моя версия Build Tools в моем build.gradle для модуля приложения устарела в старом проекте. При обновлении исправлена проблема:
android {
...
buildToolsVersion "19.0.1"
...
Обновлен до последней версии инструмента сборки (25.0.1) и синхронизирован с проектом, и все было хорошо.
Сегодня я столкнулся с тем же. В моем случае я читал целочисленное значение из моей базы данных Firebase и передавал его в setText() TextView, не преобразовывая его в целое число. Поэтому просто используйте:
textview.setText(intvalue + "");
или
textView.setText(String.valueOf(intValue));
Я получил эту ошибку из еще одной причины:
У меня был файл res/xml/data.xml
, и я пытался загрузить его с классом Resources
следующим образом:
Resources.getSystem().getXml(R.xml.data);
Однако это неверно, так как метод Resources.getSystem()
возвращает глобальный общий ресурс ресурсов, который обеспечивает доступ только к системным ресурсам.
Правильный способ следующий (изнутри Activity):
this.getResources().getXml(R.xml.data);
Это может также вызвать некоторые проблемы: Случайно один из моих макетов был припаркован в моей папке с ресурсами, поэтому я получил эту ошибку только с макетом телефона. В макете телефона просто не было подходящего файла макета.
Я снова работал после перемещения файла макета в правильной стандартной папке и последующего восстановления проекта.
даже он принял ответ, но у меня есть другой ответ. в основном это произойдет, когда вы назначаете некоторый текст для просмотра. например.
currectText.setText(progress);
но если параметр не является строкой, это даст вам
android.content.res.Resources$NotFoundException: String resource ID
поэтому сделайте параметр как строку. просто просто используйте оператор "+"
currectText.setText(""+progress);
im, передающий int в методе setText, только что преобразованный в проблему с строкой
2-й вариант, если он Integer
currectText.setText(String.valueOf(progress));
Eclipse: Project > Clean
работал у меня. Я часто получаю это, когда копирую макеты из других приложений в новое приложение.
раздражающий.
Убедитесь, что R, на который вы указываете, является правильным. У меня была проблема, очень похожая на эту проблему, когда импорт был вставлен Eclipse, который указывал на файл System R, а не на проектный. Потребовалось много царапин на голове. Надеюсь, это поможет.
У вас есть ориентация экрана в альбомной ориентации в xml. Если вы использовали eclipse для создания этого файла, оно было бы создано под res/layout-land/folder. Но когда вы открываете активность в режиме портрета, приложение будет искать xml в res/layout-port/folder или в обычном res/layout/, Если у вас не было xml для портретного режима, ваше приложение выйдет из строя.
Я удалил папки build
внутри проекта. После очистки и восстановления его в Android Studio. Затем исправлены ошибки в build.gradle и AndroidManifest.
Я исправил это следующим образом:
Создайте папку в названии ресурса ресурса "drawable-nodpi"
, а затем переместите все ваши ресурсы в этом каталоге из другого доступного каталога.
Теперь очистите проект, а затем перестройте его. Запустите снова, надеюсь, он будет работать на этот раз без какого-либо ресурса, не найденного исключения.
Я получил эту ошибку, когда пытался получить доступ к данным 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.
}