2012-08-03 81 views
3

我正在使用android 2.2 froyo應用程序。當我運行我的應用程序Android 2.2,3.0那時候完美運行。但是當我運行在Android 4.0上,那時候我給了一個錯誤。很不幸,應用程序已停止。請幫助我如何解決錯誤。Android 2.2應用程序不能在Android 4.0中工作

08-03 16:19:36.602: E/AndroidRuntime(581): FATAL EXCEPTION: main 
08-03 16:19:36.602: E/AndroidRuntime(581): java.lang.IllegalArgumentException: Window type can not be changed after the window is added. 
08-03 16:19:36.602: E/AndroidRuntime(581): at android.os.Parcel.readException(Parcel.java:1331) 
08-03 16:19:36.602: E/AndroidRuntime(581): at android.os.Parcel.readException(Parcel.java:1281) 
08-03 16:19:36.602: E/AndroidRuntime(581): at android.view.IWindowSession$Stub$Proxy.relayout(IWindowSession.java:634) 
08-03 16:19:36.602: E/AndroidRuntime(581): at android.view.ViewRootImpl.relayoutWindow(ViewRootImpl.java:3586) 
08-03 16:19:36.602: E/AndroidRuntime(581): at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1185) 
08-03 16:19:36.602: E/AndroidRuntime(581): at android.view.ViewRootImpl.handleMessage(ViewRootImpl.java:2442) 
08-03 16:19:36.602: E/AndroidRuntime(581): at android.os.Handler.dispatchMessage(Handler.java:99) 
08-03 16:19:36.602: E/AndroidRuntime(581): at android.os.Looper.loop(Looper.java:137) 
08-03 16:19:36.602: E/AndroidRuntime(581): at android.app.ActivityThread.main(ActivityThread.java:4424) 
08-03 16:19:36.602: E/AndroidRuntime(581): at java.lang.reflect.Method.invokeNative(Native Method) 
08-03 16:19:36.602: E/AndroidRuntime(581): at java.lang.reflect.Method.invoke(Method.java:511) 
08-03 16:19:36.602: E/AndroidRuntime(581): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784) 
08-03 16:19:36.602: E/AndroidRuntime(581): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551) 
08-03 16:19:36.602: E/AndroidRuntime(581): at dalvik.system.NativeStart.main(Native Method) 

logcat的
錯誤是這樣的: 不幸的應用程序已經停止

+0

清楚地告訴我wat是問題.. – shassss 2012-08-03 10:30:15

+3

在這裏發佈您的錯誤報告(LogCat)。 – Praveenkumar 2012-08-03 10:30:18

+0

我的應用程序工作正常在android 2.2,3.0,3.2但不工作4.0它的給和錯誤不幸的應用程序已經停止 – XEME 2012-08-03 10:35:17

回答

0

我上面已經評論說,但我沒有足夠的聲譽。

也許你的應用程序與API級別不兼容。前一段時間我做了類似的事情,但是當我嘗試自定義標題欄時。隨着Google在新框架中的不斷改進和增強,打破API級別很容易。 解決您的問題的方法是在Android開發人員的網站上添加兼容包。但是我們也需要知道您真正面臨的問題,以指出是否存在適用於您的問題的兼容包。發佈你的代碼,也許我們可以有效地幫助你。

+0

朋友a使用API​​ 8 android 2.2代碼,我在API 15 android 4.0上運行時發出錯誤。其中有解決方案。 – XEME 2012-08-03 11:38:25

+0

正如matkiros發佈的那樣,您可以在Android Manifest中設置API級別android:minSdkVersion =「8」,但只能使用最小的sdk版本。將項目屬性中的目標API設置爲android = 8,然後在模擬器4.0.3中運行該應用程序。如果仍然有效,就完成了。然而,取決於你將來的實現,這個可能有點令人懷疑。 – kokumajutsu 2012-08-03 15:57:41

+0

你好朋友,我可以嘗試,但我給同樣的問題和相同的錯誤。你可以解釋一下怎麼做? – XEME 2012-08-13 11:49:46

1

沒有任何示例代碼,我們很難判斷問題來自哪裏。但是,由於您提到的版本...

1:在您的AndroidManifest.xml文件中,確保您的最低SDK設置爲級別8(Froyo),目標爲15(ICS),或更好,16 (果凍豆)。像這樣:

<manifest ...> 
... 
<uses-sdk 
    android:minSdkVersion="8" 
    android:targetSdkVersion="15" /> 

<application> 
... 
</application> 
</manifest> 

2:如果您使用的是Eclipse,請右鍵單擊您的項目 - >屬性 - > Android - > Project Build Target。什麼API級別被檢查?理想情況下,這應該是Android的最新版本,即Jelly Bean,但對於您的情況,Android 4.0.3將會這樣做。如果您的系統中沒有安裝該API級別的SDK,我不確定您是否可以對其進行編譯。確保你已經安裝了你的目標API級別。

+0

thanx朋友,我在清單中寫了這個,但它給了同樣的錯誤不幸的是應用程序已經彎腰。 – XEME 2012-08-15 07:27:11

+0

如何更改Eclipse中的設置?你也這樣做了嗎?你需要做這兩件事。 – 2012-08-15 07:29:45

6

檢查,如果你有這樣的代碼在你的活動/活動

@Override 
    public void onAttachedToWindow() 
    { 
     this.getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD); 
     super.onAttachedToWindow(); 
    } 

這是在早期版本的Android的安全漏洞可能被用來將用戶鎖定到應用程序,並阻止他使用Home按鈕。這在Android 4及以上版本中是固定的,使用它會給你看到的錯誤。

相關問題