【问题标题】:Android Studio Pre-Lollipop Emulators Could not find classAndroid Studio Pre-Lollipop Emulators 找不到类
【发布时间】:2015-11-02 20:49:41
【问题描述】:

我已将我的代码从 Eclipse 迁移到 Android Studio,但我无法在 Lollipop 之前的任何模拟器上运行我的代码。我已经更新了我的 SDK,但这似乎没有帮助。每次我尝试在 Lollipop 之前运行的模拟器和 API 上运行时,我都会收到 Could not find class 错误,并且代码找不到的类是我的项目中定义的类。

这是一个生成的示例堆栈跟踪:

08-10 14:42:38.140    1615-1615/com.mypackage E/Trace﹕ error opening trace file: No such file or directory (2)
08-10 14:42:38.220    1615-1615/com.mypackage E/dalvikvm﹕ Could not find class 'com.mypackage.utils.MyLifecycleHandler$1', referenced from method com.mypackage.utils.MyLifecycleHandler.updateClientDeviceStatus
08-10 14:42:38.220    1615-1615/com.mypackage W/dalvikvm﹕ VFY: unable to resolve new-instance 7432 (Lcom/mypackage/utils/MyLifecycleHandler$1;) in Lcom/mypackage/utils/MyLifecycleHandler;
08-10 14:42:38.242    1615-1615/com.mypackage I/dalvikvm-heap﹕ Grow heap (frag case) to 15.774MB for 5041436-byte allocation
08-10 14:42:38.340    1615-1615/com.mypackage E/dalvikvm﹕ Could not find class 'com.mypackage.utils.Authentication$1', referenced from method com.mypackage.utils.Authentication.unsubscribePubnub
08-10 14:42:38.340    1615-1615/com.mypackage W/dalvikvm﹕ VFY: unable to resolve new-instance 7413 (Lcom/mypackage/utils/Authentication$1;) in Lcom/mypackage/utils/Authentication;
08-10 14:42:38.350    1615-1615/com.mypackage E/dalvikvm﹕ Could not find class 'com.mypackage.utils.Utilities$2', referenced from method com.mypackage.utils.Utilities.createAlert
08-10 14:42:38.350    1615-1615/com.mypackage W/dalvikvm﹕ VFY: unable to resolve new-instance 7478 (Lcom/mypackage/utils/Utilities$2;) in Lcom/mypackage/utils/Utilities;
08-10 14:42:38.350    1615-1615/com.mypackage E/dalvikvm﹕ Could not find class 'com.mypackage.utils.Utilities$3', referenced from method com.mypackage.utils.Utilities.createAlert
08-10 14:42:38.350    1615-1615/com.mypackage W/dalvikvm﹕ VFY: unable to resolve new-instance 7479 (Lcom/mypackage/utils/Utilities$3;) in Lcom/mypackage/utils/Utilities;
08-10 14:42:38.350    1615-1615/com.mypackage E/dalvikvm﹕ Could not find class 'com.mypackage.utils.Utilities$5', referenced from method com.mypackage.utils.Utilities.markEnoteRead
08-10 14:42:38.350    1615-1615/com.mypackage W/dalvikvm﹕ VFY: unable to resolve new-instance 7481 (Lcom/mypackage/utils/Utilities$5;) in Lcom/mypackage/utils/Utilities;
08-10 14:42:38.350    1615-1615/com.mypackage E/dalvikvm﹕ Could not find class 'com.mypackage.utils.Utilities$4', referenced from method com.mypackage.utils.Utilities.updateHotCount
08-10 14:42:38.350    1615-1615/com.mypackage W/dalvikvm﹕ VFY: unable to resolve new-instance 7480 (Lcom/mypackage/utils/Utilities$4;) in Lcom/mypackage/utils/Utilities;
08-10 14:42:38.360    1615-1615/com.mypackage E/dalvikvm﹕ Could not find class 'com.mypackage.dialogs.lists.OnlineStatusFilterList', referenced from method com.mypackage.sqlite.DataBaseHelper.getSearch
08-10 14:42:38.360    1615-1615/com.mypackage W/dalvikvm﹕ VFY: unable to resolve new-instance 7105 (Lcom/mypackage/dialogs/lists/OnlineStatusFilterList;) in Lcom/mypackage/sqlite/DataBaseHelper;
08-10 14:42:38.360    1615-1615/com.mypackage E/dalvikvm﹕ Could not find class 'com.mypackage.sqlite.ViewLogItemModel', referenced from method com.mypackage.sqlite.DataBaseHelper.getViewLog
08-10 14:42:38.360    1615-1615/com.mypackage W/dalvikvm﹕ VFY: unable to resolve new-instance 7412 (Lcom/mypackage/sqlite/ViewLogItemModel;) in Lcom/mypackage/sqlite/DataBaseHelper;
08-10 14:42:38.360    1615-1615/com.mypackage E/SQLiteLog﹕ (14) cannot open file at line 30174 of [00bb9c9ce4]
08-10 14:42:38.360    1615-1615/com.mypackage E/SQLiteLog﹕ (14) os_unix.c:30174: (2) open(/data/data/com.mypackage/databases/bc.db) -
08-10 14:42:38.360    1615-1615/com.mypackage E/SQLiteDatabase﹕ Failed to open database '/data/data/com.mypackage/databases/bc.db'.
    android.database.sqlite.SQLiteCantOpenDatabaseException: unknown error (code 14): Could not open database
            at android.database.sqlite.SQLiteConnection.nativeOpen(Native Method)
            at android.database.sqlite.SQLiteConnection.open(SQLiteConnection.java:209)
            at android.database.sqlite.SQLiteConnection.open(SQLiteConnection.java:193)
            at android.database.sqlite.SQLiteConnectionPool.openConnectionLocked(SQLiteConnectionPool.java:463)
            at android.database.sqlite.SQLiteConnectionPool.open(SQLiteConnectionPool.java:185)
            at android.database.sqlite.SQLiteConnectionPool.open(SQLiteConnectionPool.java:177)
            at android.database.sqlite.SQLiteDatabase.openInner(SQLiteDatabase.java:804)
            at android.database.sqlite.SQLiteDatabase.open(SQLiteDatabase.java:789)
            at android.database.sqlite.SQLiteDatabase.openDatabase(SQLiteDatabase.java:694)
            at android.database.sqlite.SQLiteDatabase.openDatabase(SQLiteDatabase.java:669)
            at com.mypackage.sqlite.DataBaseHelper.checkDataBase(DataBaseHelper.java:169)
            at com.mypackage.sqlite.DataBaseHelper.initialize(DataBaseHelper.java:71)
            at com.mypackage.utils.MyLifecycleHandler.onActivityResumed(MyLifecycleHandler.java:70)
            at android.app.Application.dispatchActivityResumed(Application.java:173)
            at android.app.Activity.onResume(Activity.java:1081)
            at com.mypackage.ClientRegisterActivity.onResume(ClientRegisterActivity.java:33)
            at android.app.Instrumentation.callActivityOnResume(Instrumentation.java:1184)
            at android.app.Activity.performResume(Activity.java:5082)
            at android.app.ActivityThread.performResumeActivity(ActivityThread.java:2565)
            at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:2603)
            at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2089)
            at android.app.ActivityThread.access$600(ActivityThread.java:130)
            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1195)
            at android.os.Handler.dispatchMessage(Handler.java:99)
            at android.os.Looper.loop(Looper.java:137)
            at android.app.ActivityThread.main(ActivityThread.java:4745)
            at java.lang.reflect.Method.invokeNative(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:511)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
            at dalvik.system.NativeStart.main(Native Method)
08-10 14:42:38.390    1615-1615/com.mypackage E/SQLiteLog﹕ (1) no such table: app
08-10 14:42:38.411    1615-1615/com.mypackage E/dalvikvm﹕ Could not find class 'com.mypackage.login.LoginActivity$6$1', referenced from method com.mypackage.login.LoginActivity$6.onFailure
08-10 14:42:38.411    1615-1615/com.mypackage W/dalvikvm﹕ VFY: unable to resolve new-instance 7254 (Lcom/mypackage/login/LoginActivity$6$1;) in Lcom/mypackage/login/LoginActivity$6;
08-10 14:42:38.490    1615-1615/com.mypackage W/EGL_emulation﹕ eglSurfaceAttrib not implemented
08-10 14:42:39.630    1615-1615/com.mypackage I/dalvikvm﹕ Could not find method android.view.Window.setStatusBarColor, referenced from method com.mypackage.navigation.AbstractNavDrawerActivity.changeStatusBarColor
08-10 14:42:39.630    1615-1615/com.mypackage W/dalvikvm﹕ VFY: unable to resolve virtual method 14570: Landroid/view/Window;.setStatusBarColor (I)V
08-10 14:42:39.640    1615-1615/com.mypackage W/dalvikvm﹕ VFY: unable to resolve static field 2967 (abc_dialog_title_material) in Landroid/support/v7/appcompat/R$layout;
08-10 14:42:39.640    1615-1615/com.mypackage W/dalvikvm﹕ VFY: unable to resolve static field 2826 (actionBarTheme) in Landroid/support/v7/appcompat/R$attr;
08-10 14:42:39.640    1615-1615/com.mypackage W/dalvikvm﹕ VFY: unable to resolve static field 2975 (abc_screen_simple_overlay_action_mode) in Landroid/support/v7/appcompat/R$layout;
08-10 14:42:39.640    1615-1615/com.mypackage W/dalvikvm﹕ VFY: unable to resolve static field 2974 (abc_screen_simple) in Landroid/support/v7/appcompat/R$layout;
08-10 14:42:39.640    1615-1615/com.mypackage W/dalvikvm﹕ VFY: unable to resolve static field 2955 (title) in Landroid/support/v7/appcompat/R$id;
08-10 14:42:39.640    1615-1615/com.mypackage W/dalvikvm﹕ VFY: unable to resolve static field 2911 (action_bar_activity_content) in Landroid/support/v7/appcompat/R$id;
08-10 14:42:39.650    1615-1615/com.mypackage W/dalvikvm﹕ VFY: unable to resolve static field 2826 (actionBarTheme) in Landroid/support/v7/appcompat/R$attr;
08-10 14:42:39.650    1615-1615/com.mypackage W/dalvikvm﹕ VFY: unable to resolve static field 2865 (abc_input_method_navigation_guard) in Landroid/support/v7/appcompat/R$color;
08-10 14:42:39.660    1615-1615/com.mypackage W/dalvikvm﹕ VFY: unable to resolve static field 2826 (actionBarTheme) in Landroid/support/v7/appcompat/R$attr;
08-10 14:42:39.660    1615-1615/com.mypackage W/dalvikvm﹕ VFY: unable to resolve static field 2917 (action_mode_bar_stub) in Landroid/support/v7/appcompat/R$id;
08-10 14:42:39.671    1615-1615/com.mypackage E/dalvikvm﹕ Could not find class 'com.mypackage.navigation.NavigationHelper$1', referenced from method com.mypackage.navigation.NavigationHelper.displayNetworkAlert
08-10 14:42:39.671    1615-1615/com.mypackage W/dalvikvm﹕ VFY: unable to resolve new-instance 7285 (Lcom/mypackage/navigation/NavigationHelper$1;) in Lcom/mypackage/navigation/NavigationHelper;
08-10 14:42:39.681    1615-1615/com.mypackage I/dalvikvm﹕ Could not find method com.mypackage.navigation.NavMenuProfile.create, referenced from method com.mypackage.navigation.NavigationHelper.getNavDrawerConfiguration
08-10 14:42:39.681    1615-1615/com.mypackage W/dalvikvm﹕ VFY: unable to resolve static method 49780: Lcom/mypackage/navigation/NavMenuProfile;.create (ILjava/lang/String;Ljava/lang/String;ZLandroid/content/Context;)Lcom/mypackage/navigation/NavMenuProfile;
08-10 14:42:39.690    1615-1615/com.mypackage W/dalvikvm﹕ threadid=1: thread exiting with uncaught exception (group=0xb2e89288)
08-10 14:42:39.690    1615-1615/com.mypackage E/AndroidRuntime﹕ FATAL EXCEPTION: main
    java.lang.NoClassDefFoundError: com.mypackage.navigation.NavMenuProfile
            at com.mypackage.navigation.NavigationHelper.getNavDrawerConfiguration(NavigationHelper.java:243)
            at com.mypackage.citizens.CitizensActivity.getNavDrawerConfiguration(CitizensActivity.java:744)
            at com.mypackage.navigation.AbstractNavDrawerActivity.createNavigationMenu(AbstractNavDrawerActivity.java:155)
            at com.mypackage.navigation.AbstractNavDrawerActivity.onCreate(AbstractNavDrawerActivity.java:89)
            at com.mypackage.citizens.CitizensActivity.onCreate(CitizensActivity.java:143)
            at android.app.Activity.performCreate(Activity.java:5008)
            at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1079)
            at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2023)
            at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2084)
            at android.app.ActivityThread.access$600(ActivityThread.java:130)
            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1195)
            at android.os.Handler.dispatchMessage(Handler.java:99)
            at android.os.Looper.loop(Looper.java:137)
            at android.app.ActivityThread.main(ActivityThread.java:4745)
            at java.lang.reflect.Method.invokeNative(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:511)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
            at dalvik.system.NativeStart.main(Native Method)

有谁知道导致这种情况发生的原因是什么?在使用 Android Studio 之前我没有遇到这个问题。

【问题讨论】:

  • 在您应用的 build.gradle 文件中,minSdkVersion 和 targetSdkVersion 是什么?
  • 我的 minSdkVersion 是 14,我的 targetSdkVersion 是 22

标签: java android eclipse class


【解决方案1】:

我发现这个错误与启用 multidex 有关。为了解决这个问题,我不得不添加一行

compile 'com.android.support:multidex:1.0.0'

build.gradle 依赖项。我还必须添加

MultiDex.install(this);

到我的应用程序的attachBaseContext 方法。添加这两个东西后,我就可以在 Pre-Lollipop 模拟器和设备上运行我的应用程序了。

【讨论】:

  • 但是当我搜索 maven 存储库时没有显示 multidex,为什么?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-01-04
  • 2015-07-25
  • 2020-12-07
  • 1970-01-01
  • 2015-12-11
  • 2014-08-27
  • 2016-08-29
相关资源
最近更新 更多