2012-08-03 79 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及以上版本中是固定的,使用它会给你看到的错误。

相关问题