2014-01-21 5 views
26

Я работал над своей программой для Android, и когда я пытался проверить его, я вдруг начал получать сообщение об ошибке «android.content.res.Resources $ NotFoundException: Идентификатор ресурса # 0x7f030027» последнее существенное изменение, которое я сделал, заключалось в добавлении в панель действий через библиотеку поддержки, но я уже получил эту работу. Кроме того, я добавил один новый класс, но даже если я удалю класс и связанные с ним файлы, ошибка все же появляется. Я пробовал очистить проект и перезапустить Eclipse несколько раз безрезультатно.

Вот трассировки стека в случае, если что-нибудь затерялась в переводе:

01-21 19:05:53.125: E/AndroidRuntime(18599): FATAL EXCEPTION: main 
01-21 19:05:53.125: E/AndroidRuntime(18599): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.blackhat.htmlparsingtest/com.blackhat.htmlparsingtest.MainActivity}: android.content.res.Resources$NotFoundException: Resource ID #0x7f030027 
01-21 19:05:53.125: E/AndroidRuntime(18599): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2110) 
01-21 19:05:53.125: E/AndroidRuntime(18599): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2135) 
01-21 19:05:53.125: E/AndroidRuntime(18599): at android.app.ActivityThread.access$700(ActivityThread.java:143) 
01-21 19:05:53.125: E/AndroidRuntime(18599): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1241) 
01-21 19:05:53.125: E/AndroidRuntime(18599): at android.os.Handler.dispatchMessage(Handler.java:99) 
01-21 19:05:53.125: E/AndroidRuntime(18599): at android.os.Looper.loop(Looper.java:137) 
01-21 19:05:53.125: E/AndroidRuntime(18599): at android.app.ActivityThread.main(ActivityThread.java:4950) 
01-21 19:05:53.125: E/AndroidRuntime(18599): at java.lang.reflect.Method.invokeNative(Native Method) 
01-21 19:05:53.125: E/AndroidRuntime(18599): at java.lang.reflect.Method.invoke(Method.java:511) 
01-21 19:05:53.125: E/AndroidRuntime(18599): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1004) 
01-21 19:05:53.125: E/AndroidRuntime(18599): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:771) 
01-21 19:05:53.125: E/AndroidRuntime(18599): at dalvik.system.NativeStart.main(Native Method) 
01-21 19:05:53.125: E/AndroidRuntime(18599): Caused by: android.content.res.Resources$NotFoundException: Resource ID #0x7f030027 
01-21 19:05:53.125: E/AndroidRuntime(18599): at android.content.res.Resources.getValue(Resources.java:1026) 
01-21 19:05:53.125: E/AndroidRuntime(18599): at android.content.res.Resources.loadXmlResourceParser(Resources.java:2131) 
01-21 19:05:53.125: E/AndroidRuntime(18599): at android.content.res.Resources.getLayout(Resources.java:865) 
01-21 19:05:53.125: E/AndroidRuntime(18599): at android.view.LayoutInflater.inflate(LayoutInflater.java:394) 
01-21 19:05:53.125: E/AndroidRuntime(18599): at android.view.LayoutInflater.inflate(LayoutInflater.java:352) 
01-21 19:05:53.125: E/AndroidRuntime(18599): at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:309) 
01-21 19:05:53.125: E/AndroidRuntime(18599): at android.app.Activity.setContentView(Activity.java:1914) 
01-21 19:05:53.125: E/AndroidRuntime(18599): at android.support.v7.app.ActionBarActivity.superSetContentView(ActionBarActivity.java:216) 
01-21 19:05:53.125: E/AndroidRuntime(18599): at android.support.v7.app.ActionBarActivityDelegateICS.setContentView(ActionBarActivityDelegateICS.java:111) 
01-21 19:05:53.125: E/AndroidRuntime(18599): at android.support.v7.app.ActionBarActivity.setContentView(ActionBarActivity.java:76) 
01-21 19:05:53.125: E/AndroidRuntime(18599): at com.blackhat.htmlparsingtest.MainActivity.onCreate(MainActivity.java:39) 
01-21 19:05:53.125: E/AndroidRuntime(18599): at android.app.Activity.performCreate(Activity.java:5179) 
01-21 19:05:53.125: E/AndroidRuntime(18599): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1094) 
01-21 19:05:53.125: E/AndroidRuntime(18599): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2074) 
01-21 19:05:53.125: E/AndroidRuntime(18599): ... 11 more 

Кроме того, я проверил файл R.java и ресурс, безусловно, существует, хотя, как я уже говорил очистки проекта, удаление файла R и перезапуск Eclipse ничего не делает. Одна вещь, которую я чувствовал, следует отметить, однако, что я нашел два файла R.java, один из которых находится в папке проекта вместе с BuildConfig.Java. Другой - в android.support.v7.appcompat. Я знаю, что appcompat может вызвать некоторые проблемы, поэтому я думал, что это стоит упомянуть на всякий случай.

Я даже не могу заставить мой код работать так, как он привык, поэтому любая помощь будет оценена и дайте мне знать, если вам нужна какая-либо другая информация!

+0

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

+0

Если у вас есть android.R в вашем импорте, удалите его и повторите попытку, но кроме этого, как сказал @Clay, нам понадобится дополнительная информация. – Melquiades

+0

Хорошо, какой именно код? Я бы предположил, что вам нужен код из моей MainActivity и, возможно, трассировки стека? – CheeseCoder

ответ

68

Вы можете проверить свой R-файл на Resources$NotFoundException: Resource ID #0x7f030027. Он скажет вам, какой ресурс создает проблему. В качестве альтернативного решения я думаю, что у вас может быть setText или любой контент только int. И, как вы знаете, компилятор будет искать соответствующее значение ресурса. Итак, просто введите пустую строку в ""

+0

Это действительно помогло! Как выяснилось, каким-то образом в какой-то момент xml-файл удалился из папки макета ... Я ценю помощь! – CheeseCoder

+0

Я стучал головой. Он решил мою проблему. Благодаря! –

+0

Не работайте с этим решением – delive

0

Посмотрите на эту ссылку, может быть, она вам поможет, это та же проблема. Если очистка проекта не поможет вам удалить файл r.java, он будет сгенерирован сам. Getting android.content.res.Resources$NotFoundException: exception even when the resource is present in android

+0

Нет, я попробовал удалить R.Java, как рекомендовал, и я все равно получаю ту же ошибку. – CheeseCoder

+0

Я получаю эту ошибку только на Galaxy S5 не с телефоном Motorola. Почему это? –

+0

@The_Martian Это, скорее всего, потому, что ваша проблема связана с разной плотностью телефона. Убедитесь, что любой файл, на который вы ссылаетесь, находится во всех стеблях для обоих устройств, так как, возможно, он не может найти файл на устройстве. – edwoollard

2

а) там может быть ошибка в любом из файлов ресурсов XML (строки, макеты, Аним, и т.д ..) и your.package.name.R не может скомпилировать с этой ошибкой

EX:

<string name="main_header">My problem wasn't in java it was in this string</string> 

Ошибка: апостроф ' должен быть предваряться обратной косой чертой \

Исправление:

<string name="main_header">My problem wasn\'t in java it was in this string</string> 

или

б) Вы импортировали неправильный "R" в своем классе. убедитесь, что вы импортировать your.package.name.R и не android.R

EX:

//You DO NOT want this, unless you are working directly with android's 
    resources, not your own in your project 
import android.R 

Исправление:

// You want to reference your project's resources, not Android OS's 
import your_package_name_here.R 

Надеется, что это помогает, Happy кодирования!

+0

Теперь, когда вы упомянули об этом, при создании нового класса я изначально не модифицировал strings.xml, а также не создавал меню или макет (так как я планировал использовать другое меню и файл макета в любом случае. Может ли это возникнуть ситуация? – CheeseCoder

+0

Нет это не должно повлиять на это, и если бы это было так, я уверен, что это не будет сделано с ошибками. См. мой обновленный ответ. Надеюсь, он поможет – MattMatt

+0

Проверял мой код после редактирования, и я заметил, что R не импортируется Я даже не помню, чтобы импортировать его, хотя я мог ошибаться. Я не знаю, имеет ли это значение, но если это так, я не знаю, как импорт был удален из всех моих классов без меня непосредственно редактируя их. Спасибо за ваш ответ! – CheeseCoder

5

Для меня, создав файл макета, он приземлился в папке layout-land, поэтому исключение. Надеюсь, это поможет кому-то.

+0

Вот что моя проблема. Спасибо :) –

+0

Так оно и было. Android Studio иногда поражает при вставке макетов между проектами. –

0

Возможно, ваш вариант разработки для новой версии Android от вашего текущего устройства. Попробуйте загрузить SDK, подходящий для вашего тестового устройства.

7

я получаю это исключение:

android.content.res.Resources$NotFoundException: Resource ID #0x7f02004f

Я звонил PNG Icon из ... \ приложение \ SRC \ главная \ Рез \ вытяжке-21

Когда я кладу PNG Icon в ... \ приложение \ SRC \ основные \ рес \ вытяжке и я называю это,
Моя проблема уходит

BTW XML от \drawable-21

6

Если бы этот же выпуск тоже.

Но оказался, как я двигался вещи вокруг в моем IDE я неправильно переместил ресурс макета (XML) из макета каталога в макете земли.

Это сработало после того, как я перевел его обратно.

Надеюсь, это поможет кому-то.

+0

thnxx человек, которого вы спасли меня –

0

Если вы используете вектор вытяжку в resource.xml, который имеет <layer-list> на API версии 19 или понизить вы получите это исключение

0

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

<ScrollView 
     android:id="@+id/scroller" 
     style="@style/scrollbar_shape_style" 
    ..> 

и мой стиль был похож:

<style name="scrollbar_shape_style"> 
    ... 

Я изменил первую часть этого:

<ScrollView 
    android:id="@+id/scroller" 
    android:theme="@style/scrollbar_shape_style" 

и добавил родителей к стилю, как это:

<style name="scrollbar_shape_style" parent="LightTheme"> 

и проблема решена.

0

Вы можете называть строку из ресурсов проекта с

Resources().getSystem().getString( R.string.my_string_id)

, который относится к глобальным ресурсам. Для того, чтобы обратиться к своим ресурсам проекта сделать GetString() непосредственно из Вашей деятельности:

this.getString(
    R.string.my_string_id); // From within your activity class. 

myActivity.getString(
    R.string.my_string_id); // From other classes as instance reference. 
5

В моем случае ошибка произошла после обновления до Android студии сборки: 3,0 Canary 6, я установил ее в downgradeing ее к предыдущей версии 3.0 Canary -5 и построить инструменты canary-5.

Проблема была связана с некоторой несовместимостью с векторным вводимым коэффициентом на апи 19 и ниже

EDIT: Это похоже, что упомянутый вопрос был решен на Android студии сборки: 3,0 Canary 7

+0

Как я могу понизить мою андроид-студию? –

+0

Загрузить старый https://developer.android.com/studio/archive.html – murt

+0

такой же здесь, после того, как понижение снова прекратится –

1

Я получал эту ошибку на Android 4.2.2, но не на Android 5 и Android 6. Причина была в том, что я установил несколько векторных значков (xml-файлы для переносного ящика) в папку drawable-v21, потому что по умолчанию иконки ящика навигации, созданные по умолчанию для Android, например ic_menu_gallery.xml находились в папке drawable-v21. Перемещение этих xml-файлов (которые я сгенерировал, а не по умолчанию) в папку с возможностью выбора, решило мою проблему. Не перемещайте созданные по умолчанию значки с возможностью рисования, иначе он может вызвать дублирующее исключение.

1

Я только что столкнулся с одной проблемой - очистка и восстановление проекта решила проблему для меня!

0

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

Смежные вопросы