2014-01-21 269 views
26

我正在研究我的android程序,當我嘗試測試它時,我突然開始收到「android.content.res.Resources $ NotFoundException:Resource ID#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上遇到這個錯誤,而沒有使用摩托羅拉手機。爲什麼是這樣? –

+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> 

錯誤:撇號'需要由反斜槓preceeded \

更正:

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

,或者

b)您輸入了錯誤的 「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 

希望這有助於編碼快樂!

+0

現在你已經提到它了,當創建新類時,我原本不會修改strings.xml,也不會創建菜單或佈局(因爲我計劃使用不同的菜單和佈局文件,這是否會導致情況A? – 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成我的問題消失了

我的問題消失了

BTW XML加工\drawable-21

6

也有同樣的問題。

但事實證明,因爲我是在我的IDE中移動的東西我錯移離佈局目錄佈局資源(XML)爲佈局土地

它在我將它移回來後起作用。

希望這可以幫助別人。

+0

thnxx你救了我的人 –

0

如果您使用矢量繪製在這對API版本19 <layer-list>或降低你會得到這個異常

0

在我來說,我使用的是自定義樣式爲我在滾動垂直滾動條的resource.xml查看這樣的:

<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 Studio生成後發生:3.0金絲雀6,我在它downgradeing到以前的版本3.0金絲雀固定它-5和建立工具canary-5。

問題同一些incompability與API的19歲及以下

編輯矢量繪圖資源相關: 它看起來像提到的問題已在的Android Studio生成解決:3.0金絲雀7

+0

我該如何降級我的android studio? –

+0

下載舊版 https://developer.android.com/studio/archive.html – murt

+0

同樣在這裏,降級後再次工作正常 –

1

我在Android 4.2.2上得到了這個錯誤,但在Android 5和Android 6上沒有。 原因是我在drawable-v21文件夾中放了一些矢量圖標(xml文件用於導航抽屜),因爲默認情況下android生成了抽屜圖標例如ic_menu_gallery.xml位於drawable-v21文件夾中。將這些xml文件(我生成的而不是默認文件)移動到可繪製文件夾解決了我的問題。不要將默認生成的圖標移動到drawable中,否則可能會導致重複的異常。

1

我剛剛遇到同樣的問題 - 清理和重建項目解決了我的問題!

0

您可能會使用兩次相同的資源照片。
這發生在我身上時,照片兩次使用:
第一時間在主屏幕然後在另一個活動中使用相同的照片。

相關問題