0

在尝试解决这个奇怪的问题将近 2 周后,我放弃了!基本上每次我尝试仅在具有 Android 2.xx 的设备上运行我的应用程序时都会得到 java.lang.VerifyError 从 3.xx 一切都进展顺利。

在项目中我使用这两个外部库:

  1. 动作条 Sherlock - http://actionbarsherlock.com/ - 在 v4.4.0 更新
  2. 滑动菜单 - https://github.com/jfeinstein10/SlidingMenu

这是 LogCat 每次返回的内容:

FATAL EXCEPTION: main
java.lang.VerifyError: me.xxx.menu.MenuListFragment
at me.xxx.menu.BaseSlidingMenuActivity.onCreate(BaseSlidingMenuActivity.java:46)
at me.xxx.menu.SlidingMenuCustomAnimation.onCreate(SlidingMenuCustomAnimation.java:28)
at me.xxx.XXXActivity.onCreate(XXXActivity.java:130)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1611)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1663)
at android.app.ActivityThread.access$1500(ActivityThread.java:117)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:931)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:130)
at android.app.ActivityThread.main(ActivityThread.java:3683)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:507)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
at dalvik.system.NativeStart.main(Native Method)

这就是 BaseSlidingMenuActivity.java 在第 46 行附近的样子:

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
     setTitle(mTitleRes);

    // set the Behind View
    setBehindContentView(R.layout.frame_content);

    if (savedInstanceState == null) {
    FragmentTransaction t = this.getSupportFragmentManager().beginTransaction();

    mFrag = new MenuListFragment();  <--- ERROR HERE!

    t.replace(R.id.frame_content, mFrag);
    t.commit();

    } else {

    mFrag =(SherlockListFragment)this.getSupportFragmentManager()
                .findFragmentById(R.id.frame_content);
}

    ...
    ...
}

其中 MenuListFragment() 是一个 SlidingFragmentActivity,它扩展了一个 SherlockFragmentActivity 并实现了 SlidingActivityBase。

当然,我用谷歌搜索了这个问题,似乎很多人都在使用最新版本的 Android SDK 工具,即 v22.xx 时遇到这个问题,实际上是 v22.6.3。

有些人解决了验证错误,只是将检查放在“私有库”框上,在“BuildPath->配置 BuildPath->订单和导出”菜单中,正如其他关于验证错误的对话中所解释的那样,但对我来说不起作用,甚至因为已经检查了“私人图书馆”。所以图书馆/进口情况似乎没问题!

希望有人已经为此提供了解决方案!我快疯了!:D

谢谢!

4

1 回答 1

0

我终于找到了解决方案!

回顾一下!基本上,您可能会收到此错误的两个主要原因:

  1. (就我而言)我一直在尝试在 API 级别低于 10 的设备上运行我的应用程序时遇到 VerifyError,因为我试图捕获 Android API 级别 11 支持的 SQLiteDatabaseLockedException。所以要解决它检查您的最低 API 级别是否支持每个异常或可能的方法(即 API 级别 9 支持 String.isEmpty())。

  2. 当我在寻找解决方案时,我发现很多人得到了 VerifyError,因为库导入存在一些问题,如这篇文章中所述: http: //commonsware.com/blog/2013/05/23/do-非手动修改-eclipse-build-path-except-now-r22.html

希望这会帮助我以外的人!:D

再见!毛虫。

于 2014-05-02T13:48:41.877 回答