2015-08-20 58 views
2

我在CommonsWare博客上看到,在Android 6.0的推出之前更新appcompat-v7到最新版本是一个聪明的主意,所以我只是继续尝试在Eclipse中使用我的项目来做到这一点。更新库后(我只是删除了以前的版本,并添加了新的资源),我的(以前的ActionBarActivity)AppCompatActivity没有启动(应用程序崩溃)。这是LogCat内容:已更新appcompat-v7到最新版本,获取NoClassDefFound的AppCompatDelegateImplV23

08-20 02:55:58.417: I/art(28031): Rejecting re-init on previously-failed class java.lang.Class<android.support.v7.app.AppCompatDelegateImplV7> 
08-20 02:55:58.418: I/art(28031): Rejecting re-init on previously-failed class java.lang.Class<android.support.v7.app.AppCompatDelegateImplV7> 
08-20 02:55:58.419: I/art(28031): Rejecting re-init on previously-failed class java.lang.Class<android.support.v7.app.AppCompatDelegateImplV11> 
08-20 02:55:58.419: I/art(28031): Rejecting re-init on previously-failed class java.lang.Class<android.support.v7.app.AppCompatDelegateImplV11> 
08-20 02:55:58.419: I/art(28031): Rejecting re-init on previously-failed class java.lang.Class<android.support.v7.app.AppCompatDelegateImplV14> 
08-20 02:55:58.420: I/art(28031): Rejecting re-init on previously-failed class java.lang.Class<android.support.v7.app.AppCompatDelegateImplV14> 
08-20 02:55:58.420: I/art(28031): Rejecting re-init on previously-failed class java.lang.Class<android.support.v7.app.AppCompatDelegateImplV23> 
08-20 02:55:58.420: I/art(28031): Rejecting re-init on previously-failed class java.lang.Class<android.support.v7.app.AppCompatDelegateImplV23> 
08-20 02:55:58.421: I/art(28031): Rejecting re-init on previously-failed class java.lang.Class<android.support.v7.app.AppCompatDelegateImplV14> 
08-20 02:55:58.421: I/art(28031): Rejecting re-init on previously-failed class java.lang.Class<android.support.v7.app.AppCompatDelegateImplV11> 
08-20 02:55:58.421: I/art(28031): Rejecting re-init on previously-failed class java.lang.Class<android.support.v7.app.AppCompatDelegateImplV7> 
08-20 02:55:58.421: I/art(28031): Rejecting re-init on previously-failed class java.lang.Class<android.support.v7.app.AppCompatDelegateImplV23> 
08-20 02:55:58.421: D/AndroidRuntime(28031): Shutting down VM 
08-20 02:55:58.422: E/AndroidRuntime(28031): FATAL EXCEPTION: main 
08-20 02:55:58.422: E/AndroidRuntime(28031): Process: com.threeeplusplus.karkoona, PID: 28031 
08-20 02:55:58.422: E/AndroidRuntime(28031): java.lang.NoClassDefFoundError: android.support.v7.app.AppCompatDelegateImplV23 
08-20 02:55:58.422: E/AndroidRuntime(28031): at android.support.v7.app.AppCompatDelegate.create(AppCompatDelegate.java:133) 
08-20 02:55:58.422: E/AndroidRuntime(28031): at android.support.v7.app.AppCompatDelegate.create(AppCompatDelegate.java:117) 
08-20 02:55:58.422: E/AndroidRuntime(28031): at android.support.v7.app.AppCompatActivity.getDelegate(AppCompatActivity.java:456) 
08-20 02:55:58.422: E/AndroidRuntime(28031): at android.support.v7.app.AppCompatActivity.onCreate(AppCompatActivity.java:59) 
08-20 02:55:58.422: E/AndroidRuntime(28031): at com.threeeplusplus.karkoona.activities.CentralNavActivity.onCreate(CentralNavActivity.java:154) 
08-20 02:55:58.422: E/AndroidRuntime(28031): at android.app.Activity.performCreate(Activity.java:6237) 
08-20 02:55:58.422: E/AndroidRuntime(28031): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1107) 
08-20 02:55:58.422: E/AndroidRuntime(28031): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2369) 
08-20 02:55:58.422: E/AndroidRuntime(28031): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476) 
08-20 02:55:58.422: E/AndroidRuntime(28031): at android.app.ActivityThread.-wrap11(ActivityThread.java) 
08-20 02:55:58.422: E/AndroidRuntime(28031): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344) 
08-20 02:55:58.422: E/AndroidRuntime(28031): at android.os.Handler.dispatchMessage(Handler.java:102) 
08-20 02:55:58.422: E/AndroidRuntime(28031): at android.os.Looper.loop(Looper.java:148) 
08-20 02:55:58.422: E/AndroidRuntime(28031): at android.app.ActivityThread.main(ActivityThread.java:5417) 
08-20 02:55:58.422: E/AndroidRuntime(28031): at java.lang.reflect.Method.invoke(Native Method) 
08-20 02:55:58.422: E/AndroidRuntime(28031): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726) 
08-20 02:55:58.422: E/AndroidRuntime(28031): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) 

我一直在尝试解决这个小时,但没有任何作品!我清理,重新清理,删除了库,重新添加,检查了包含的类文件的.jar文件,并且确实存在AppCompatDelegateImplV23等。

任何想法?

+0

你使用的是eclipse还是as?你用哪个api来编译? –

+0

我正在使用Eclipse。 minSdk是16,targetSdk是23. – Antonis427

+0

targetSdk和compileSdk是不同的。 –

回答

0

尝试了所有我能想到的方法后,我最终从工作区,android-support-v4.jar和android-support-v7-appcompat.jar中删除了项目的/ bin文件夹中的库,到属性 - > Android和在图书馆部分删除了android-support-v7-appcompat。

我还在Java Build Path - > Libraries和Java Build Path - > Order and Export中删除了与支持库相关的所有内容。

然后我重新导入库,它的错误消失了。该应用程序现在可以工作,但v23的appcompat库是一种搞砸(一,行动模式不覆盖支持工具栏,它现在出现在它 - 即状态栏和工具栏之间)

+0

动作模式不是问题,您需要在主题中设置此项以启用叠加 true

0

我有同样的错误,来到翻过用以下解决方案:

  1. 闭上你的实际工作空间开发项目

  2. 创建新的工作区

  3. 创建新的Android测试项目。 这将自动创建appcompat_v7与Android最后更新 版本。
  4. 转到您的开发项目工作空间路径,(没有到Eclipse中,工作区目录)
  5. 删除appcompat_v7
  6. 转到你的Android测试项目工作空间路径
  7. 拷贝appcompat_v7
  8. 粘贴到您的开发项目工作空间路径
  9. 现在打开Eclipse与开发项目工作区

固定