
我的应用程式中有这个来源:
@OverrIDeprotected voID onCreate(Bundle arg0) { super.onCreate(arg0); if (androID.os.Build.VERSION.SDK_INT >= androID.os.Build.VERSION_CODES.HONEYCOMB) { settheme(getHoneycombStyle()); Actionbar actionbar = getActionbar(); if (actionbar != null) { actionbar.setCustomVIEw(R.layout.ACTION_bar); } }}它可以在Honeycomb,AndroID 2.1、2.2和2.3中正常工作,但是在AndroID 1.6中则无法工作.尽管我已经检查了SDK版本,但该应用程序返回此异常:
08-31 18:23:33.063: ERROR/AndroIDRuntime(3262): Uncaught handler: thread main exiting due to uncaught exception08-31 18:23:33.083: ERROR/AndroIDRuntime(3262): java.lang.VerifyError: com.eldan.introducing.activity.IBBaseCompActivity08-31 18:23:33.083: ERROR/AndroIDRuntime(3262): at java.lang.class.newInstanceImpl(Native Method)08-31 18:23:33.083: ERROR/AndroIDRuntime(3262): at java.lang.class.newInstance(Class.java:1472)08-31 18:23:33.083: ERROR/AndroIDRuntime(3262): at androID.app.Instrumentation.newActivity(Instrumentation.java:1097)08-31 18:23:33.083: ERROR/AndroIDRuntime(3262): at androID.app.ActivityThread.performlaunchActivity(ActivityThread.java:2316)08-31 18:23:33.083: ERROR/AndroIDRuntime(3262): at androID.app.ActivityThread.startActivityNow(ActivityThread.java:2242)08-31 18:23:33.083: ERROR/AndroIDRuntime(3262): at androID.app.LocalActivityManager.movetoState(LocalActivityManager.java:127)08-31 18:23:33.083: ERROR/AndroIDRuntime(3262): at androID.app.LocalActivityManager.startActivity(LocalActivityManager.java:339)08-31 18:23:33.083: ERROR/AndroIDRuntime(3262): at androID.Widget.TabHost$IntentContentStrategy.getContentVIEw(TabHost.java:631)08-31 18:23:33.083: ERROR/AndroIDRuntime(3262): at androID.Widget.TabHost.setCurrentTab(TabHost.java:317)08-31 18:23:33.083: ERROR/AndroIDRuntime(3262): at androID.Widget.TabHost.onTabSelectionChanged(TabHost.java:127)08-31 18:23:33.083: ERROR/AndroIDRuntime(3262): at androID.Widget.TabWidget$TabClickListener.onClick(TabWidget.java:346)08-31 18:23:33.083: ERROR/AndroIDRuntime(3262): at androID.vIEw.VIEw.performClick(VIEw.java:2344)08-31 18:23:33.083: ERROR/AndroIDRuntime(3262): at androID.vIEw.VIEw.ontouchEvent(VIEw.java:4133)08-31 18:23:33.083: ERROR/AndroIDRuntime(3262): at androID.vIEw.VIEw.dispatchtouchEvent(VIEw.java:3672)08-31 18:23:33.083: ERROR/AndroIDRuntime(3262): at androID.vIEw.VIEwGroup.dispatchtouchEvent(VIEwGroup.java:850)08-31 18:23:33.083: ERROR/AndroIDRuntime(3262): at androID.vIEw.VIEwGroup.dispatchtouchEvent(VIEwGroup.java:882)08-31 18:23:33.083: ERROR/AndroIDRuntime(3262): at androID.vIEw.VIEwGroup.dispatchtouchEvent(VIEwGroup.java:882)08-31 18:23:33.083: ERROR/AndroIDRuntime(3262): at androID.vIEw.VIEwGroup.dispatchtouchEvent(VIEwGroup.java:882)08-31 18:23:33.083: ERROR/AndroIDRuntime(3262): at androID.vIEw.VIEwGroup.dispatchtouchEvent(VIEwGroup.java:882)08-31 18:23:33.083: ERROR/AndroIDRuntime(3262): at androID.vIEw.VIEwGroup.dispatchtouchEvent(VIEwGroup.java:882)08-31 18:23:33.083: ERROR/AndroIDRuntime(3262): at com.androID.internal.policy.impl.PhoneWindow$DecorVIEw.superdispatchtouchEvent(PhoneWindow.java:1712)08-31 18:23:33.083: ERROR/AndroIDRuntime(3262): at com.androID.internal.policy.impl.PhoneWindow.superdispatchtouchEvent(PhoneWindow.java:1202)08-31 18:23:33.083: ERROR/AndroIDRuntime(3262): at androID.app.Activity.dispatchtouchEvent(Activity.java:1987)08-31 18:23:33.083: ERROR/AndroIDRuntime(3262): at com.androID.internal.policy.impl.PhoneWindow$DecorVIEw.dispatchtouchEvent(PhoneWindow.java:1696)08-31 18:23:33.083: ERROR/AndroIDRuntime(3262): at androID.vIEw.VIEwRoot.handleMessage(VIEwRoot.java:1658)08-31 18:23:33.083: ERROR/AndroIDRuntime(3262): at androID.os.Handler.dispatchMessage(Handler.java:99)08-31 18:23:33.083: ERROR/AndroIDRuntime(3262): at androID.os.Looper.loop(Looper.java:123)08-31 18:23:33.083: ERROR/AndroIDRuntime(3262): at androID.app.ActivityThread.main(ActivityThread.java:4203)08-31 18:23:33.083: ERROR/AndroIDRuntime(3262): at java.lang.reflect.Method.invokeNative(Native Method)08-31 18:23:33.083: ERROR/AndroIDRuntime(3262): at java.lang.reflect.Method.invoke(Method.java:521)08-31 18:23:33.083: ERROR/AndroIDRuntime(3262): at com.androID.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:791)08-31 18:23:33.083: ERROR/AndroIDRuntime(3262): at com.androID.internal.os.ZygoteInit.main(ZygoteInit.java:549)08-31 18:23:33.083: ERROR/AndroIDRuntime(3262): at dalvik.system.NativeStart.main(Native Method)听起来编译器在我的onCreate方法中检测到Actionbar源,而AndroID 1.6不支持它.但是我不太确定如何解决这个问题.
解决方法:
您无法在加载到旧版AndroID VM中的代码中引用新版AndroID中的类或方法.
您有两个主要选择:
>将Actionbar代码隔离到一个单独的实用工具类中,并且仅当您在Honeycomb上时才使用该类,具体取决于androID.os.Build. Here is a sample project演示了通过隔离在仅用于Honeycomb的HoneycombHelper类中的getActionVIEw()调用,利用getActionVIEw()将自定义布局放入可用于Honeycomb和更旧版本的 *** 作栏中.
>使用ActionBarSherlock访问 *** 作栏.它将为您提供Honeycomb上的本机 *** 作栏,以及旧版AndroID上的工作方式.
以上是内存溢出为你收集整理的Android 1.6中的ActionBar全部内容,希望文章能够帮你解决Android 1.6中的ActionBar所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)