2012-02-06 99 views
56

請讓我知道我錯了獲取錯誤。

我創建一個應用程序,它有它的活動之一,只在橫向模式。所以我加入的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這異常是尋找資源,它出現在那裏...

我清理了d重建項目5次,但問題仍然存在。

奇怪的一點是,這是工作的昨天和今天不工作真實。代碼是一樣的。

+0

什麼資源ID#0x7f03002b指什麼?你應該提供'see_today_landscape_layout.xml'文件的內容。 –

+0

是它引用see_today_landscape_layout.xml根據R.java – Nik

+1

可能重複的[Android資源未找到異常?](http://stackoverflow.com/questions/7727808/android-resource-not-found-exception) – rds

回答

26
  1. 在Eclipse中,轉到項目>清潔...
  2. 選擇你的項目,然後按OK
  3. 重新發布該應用程序

如果它發生再次刪除r.java文件。它會自動生成。

+1

請刪除r.java文件並重新運行 – prakash

+2

正如我前面提到......我清楚bin和根文件夾和重建應用程序..仍然不工作... – Nik

+77

如果這沒有解決您的問題,爲什麼它會得到複選標記? – IcedDante

10

由於要設置佈局明確,你可能想嘗試,並把它在缺省的/佈局文件夾不在/佈局的土地,因爲那是,如果你希望Android自動處理旋轉你。

+0

我試過這個以及...但是給馬肖像視圖 – Nik

+1

如果手機處於縱向視圖中,它將以縱向顯示,當您旋轉手機時它將處於橫向模式。你想讓它總是風景?然後你需要做的是將活動的方向設置爲清單文件或代碼中的橫向格式,請參閱此問題http://stackoverflow.com/questions/2150287/force-an-android-activity-to-always-use -landscape模式 – mbwasi

+0

我這樣做,是因爲我在我的問題「<活動機器人:名字=機器人‘LandScapeImageActivity’:screenOrientation =‘風景’>」提到 – Nik

0

Eclipse:項目>清潔

爲我工作。當我從其他應用程序的佈局複製到一個新的應用程序時,我經常得到這個。

煩人。

2

檢查以確保您的導入是正確的。我有一個類似的問題,其中R指向andriod系統R文件,而不是我本地的文件。我希望這有幫助。

0

確保您都指向R是正確的。我遇到了一個與此非常相似的問題,Eclipse中插入了一個指向System R文件而非項目文件的導入。它花了很多頭撓。希望這可以幫助。

174

對於我的情況,原因是TextView的整數參數。讓我舉個例子

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

獲取上面的錯誤信息。

這可以通過INT轉換爲字符串這樣

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

當你寫INT是固定的,它需要一個資源而不是文字,你正在寫。所以在android中將整數設置爲字符串時要小心。

+16

謝謝!當然,'「」+ i'也可以。 – cayhorstmann

+0

謝謝,它的工作,我嘗試這樣做:num2.setText(lotteryCharacters.charAt(2));,然後我改num2.setText(將String.valueOf(lotteryCharacters.charAt(2))); .. 。它的工作! – TharakaNirmana

+0

這個解決了我的問題!愚蠢的我:D – Mahmood

2

這可能是由於您的代碼沒有資產的手機中使用的語言不同造成的。例如,您的preference.xml放置在xml-en中,並且您嘗試在已選擇法語的電話中運行您的應用程序,該應用程序將崩潰。

+0

總是創建默認資產文件夾,然後添加語言或方向特定的文件夾。雖然這可能或可能不是這裏:) –

7

將您的佈局xml從res/layout-land移動到res/layout文件夾。 它適用於我

+0

* *佈局文件夾? – Robert

+1

from res/layout-land >> res /佈局文件夾 –

+0

也發生過多次 –

0

你的屏幕方向設置爲橫向在你的XML。如果您使用eclipse生成該文件,它將在res/layout-land/folder下創建。但是當您在縱向模式下打開活動時,應用程序將在res/layout-port /文件夾或常規res/layout/。 如果您沒有肖像模式的xml,您的應用程序將崩潰。

1

我從另一個理由得到這個錯誤:

我有文件res/xml/data.xml,我試圖用Resources類這樣加載它:

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

然而,這是不正確的方法Resources.getSystem()返回一個全局共享資源對象,該對象只提供對系統資源的訪問。

正確的方法是(從內活動)如下:

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

我刪除的文件夾build一個項目中。在Android Studio中清理並重建之後。然後糾正build.gradle和AndroidManifest中的錯誤。

1

這也可能導致一些麻煩: 我的一個佈局意外停放在我的平板電腦資源文件夾中,所以我只在電話佈局中出現此錯誤。手機佈局根本沒有合適的佈局文件。

在將佈局文件移動到正確的標準文件夾和後續項目重建後,我再次工作。

+0

你能提供更多的信息嗎?http://stackoverflow.com/help/how-to-answer –

+0

好吧,我試圖更清楚地描述這個問題。 :) – wolwe

2

在我的情況下,我的應用程序模塊的build.gradle中的構建工具版本過時了舊的項目。更新它解決了該問題:

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

更新到最新版本的工具版本(25.0.1)和同步時間的項目,一切都恢復了健康。

0

我已經這樣定的:

在資源目錄名"drawable-nodpi"創建一個文件夾,然後在此目錄中移動你的所有資源,從其他繪製目錄。

現在清理你的項目,然後重建。希望它再次運行,這次沒有任何資源沒有發現異常。

1

即使它已經接受的答案,但我有不同的答案。大多數情況下,當您指定一些文本進行查看時會發生這種情況。例如 。

 currectText.setText(progress); 

但如果參數不是字符串,它會給你

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

所以要參數作爲字符串。這是簡單,只要用 '+' 操作符

 currectText.setText(""+progress); 

中的setText方法只是轉換成字符串問題IM通過INT解決

第二個選項,如果它是整數

currectText.setText(將String.valueOf(進度));

+0

確切地說 - 解決了我的問題!!!!!!!!!!!!!!! –

+1

最受歡迎的兄弟 –

0

我,當我試圖通過使用getInt(「ID」)從一個意圖取用捆數據這個錯誤。

我使用的getString( 「ID」)解決了它。

從活動1,我有

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. 
} 
+1

請更新您的答案,以解釋如何解決這個問題,並改進這個5年前的問題已有的upvoted和接受的答案。請參閱:[我如何寫出一個好的答案](https://stackoverflow.com/help/how-to-answer)。 – FluffyKitten

+0

請考慮增加一些細節和解釋來支持你的答案,這對其他人有幫助 –

相關問題