2014-03-30 130 views
0

我開發了一個android應用程序。這個應用程序在我的設備上完美運行,但在仿真器中崩潰。 由於在我的大學我們必須在仿真器中提供應用程序,這個錯誤造成了很多問題。 logcat的Android應用程序在設備上運行完美,但在模擬器崩潰

03-30 10:52:52.633: E/AndroidRuntime(257): Uncaught handler: thread main exiting due to uncaught exception 
03-30 10:52:52.653: E/AndroidRuntime(257): java.lang.NoSuchMethodError: com.example.festipedia_logo.main.getActionBar 
03-30 10:52:52.653: E/AndroidRuntime(257): at com.example.festipedia_logo.main.onCreate(main.java:51) 
03-30 10:52:52.653: E/AndroidRuntime(257): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047) 
03-30 10:52:52.653: E/AndroidRuntime(257): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2459) 
03-30 10:52:52.653: E/AndroidRuntime(257): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2512) 
03-30 10:52:52.653: E/AndroidRuntime(257): at android.app.ActivityThread.access$2200(ActivityThread.java:119) 
03-30 10:52:52.653: E/AndroidRuntime(257): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1863) 
03-30 10:52:52.653: E/AndroidRuntime(257): at android.os.Handler.dispatchMessage(Handler.java:99) 
03-30 10:52:52.653: E/AndroidRuntime(257): at android.os.Looper.loop(Looper.java:123) 
03-30 10:52:52.653: E/AndroidRuntime(257): at android.app.ActivityThread.main(ActivityThread.java:4363) 
03-30 10:52:52.653: E/AndroidRuntime(257): at java.lang.reflect.Method.invokeNative(Native Method) 
03-30 10:52:52.653: E/AndroidRuntime(257): at java.lang.reflect.Method.invoke(Method.java:521) 
03-30 10:52:52.653: E/AndroidRuntime(257): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860) 
03-30 10:52:52.653: E/AndroidRuntime(257): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618) 
03-30 10:52:52.653: E/AndroidRuntime(257): at dalvik.system.NativeStart.main(Native Method) 
03-30 10:52:52.693: E/dalvikvm(257): Unable to open stack trace file '/data/anr/traces.txt': Permission denied 
+4

模擬器具有舊的android版本,沒有操作欄。使用支持庫。 – Leonidos

+0

你的代碼中有什麼API級別?在設備上?在模擬器上? @Leonidos可能是對的,但還有其他的可能性。 –

+0

@ david.pfx API級別的代碼 - 4,設備-19,模擬器 - 7 – ganapathy

回答

0

這是因爲你的emaluator不配套行動起來吧。嘗試以下任一方法

1-使用操作欄sherlock而不是操作欄。谷歌它的實施。

2 - 嘗試將android版本的emaluator增加到ICS或更多。

我建議使用操作欄福爾摩斯

0

來自官方的文檔,請嘗試以下,看看是否錯誤消失。

在ActionBar的API Android中3.0(API級11),但 首先加入它們也可以在支持庫,可以兼容 的Android 2.1(API級別7)及以上。

本指南重點介紹如何使用支持庫的操作欄,但如果您的應用只支持Android 3.0或更高版本,則應使用 框架中的 ActionBar API。大多數API是相同的,但 位於不同的包名稱空間中,除了下面幾節中提到的 方法名稱或簽名以外的一些例外。

注意:必須確定你從相應的包導入動作條類(及相關API) :

如果支持API級別低於11:

import android.support.v7.app.ActionBar 

如果只支持API級別11高:

import android.app.ActionBar 

更多在:http://developer.android.com/guide/topics/ui/actionbar.html

您還可以檢查http://actionbarsherlock.com/

+0

我如何獲得支持v7庫 – ganapathy

+0

https://developer.android.com/tools/support-library/setup.html – fida1989

+0

我讀了這樣一句話:'如果您的應用程序中包含v4支持和v7 appcompat庫,你應該指定一個最低的SDK版本「7」(而不是「4」)。您在應用程序中包含的最高支持庫級別決定了它可以運行的最低API版本。' 在我的應用程序中,我有v 13和v7庫,如果我刪除v13庫以便應用程序可以支持最低api 7,那麼它給出了一個錯誤,指出v13是必需的......我該怎麼辦? – ganapathy

0

只要告訴你的模擬器支持相同的API級別爲您的設備和問題應該奇蹟般地消失了。這是仿真器中的配置設置。

+0

仍然不能正常工作 – ganapathy

+0

您還在編寫API級別4嗎?爲什麼? –

+0

我應該將其更改爲7?我選擇API級別4的主要動機是支持所有可用的設備,即使是較低的API – ganapathy

相關問題