Android错误 - 引起:java.lang.NoClassDefFoundError:android.support.v4.util.SparseArrayCompat

时间:2013-05-20 02:33:48

标签: android android-support-library

启动我的应用时出现这些日志错误:

> 05-20 01:48:35.312: E/AndroidRuntime(23032): FATAL EXCEPTION: main
05-20 01:48:35.312: E/AndroidRuntime(23032): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.tomsyweb.suna/com.tomsyweb.suna.MainActivity}: android.view.InflateException: Binary XML file line #9: Error inflating class com.origamilabs.library.views.StaggeredGridView
05-20 01:48:35.312: E/AndroidRuntime(23032):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1651)
05-20 01:48:35.312: E/AndroidRuntime(23032):    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1667)
05-20 01:48:35.312: E/AndroidRuntime(23032):    at android.app.ActivityThread.access$1500(ActivityThread.java:117)
05-20 01:48:35.312: E/AndroidRuntime(23032):    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:935)
05-20 01:48:35.312: E/AndroidRuntime(23032):    at android.os.Handler.dispatchMessage(Handler.java:99)
05-20 01:48:35.312: E/AndroidRuntime(23032):    at android.os.Looper.loop(Looper.java:130)
05-20 01:48:35.312: E/AndroidRuntime(23032):    at android.app.ActivityThread.main(ActivityThread.java:3687)
05-20 01:48:35.312: E/AndroidRuntime(23032):    at java.lang.reflect.Method.invokeNative(Native Method)
05-20 01:48:35.312: E/AndroidRuntime(23032):    at java.lang.reflect.Method.invoke(Method.java:507)
05-20 01:48:35.312: E/AndroidRuntime(23032):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:867)
05-20 01:48:35.312: E/AndroidRuntime(23032):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:625)
05-20 01:48:35.312: E/AndroidRuntime(23032):    at dalvik.system.NativeStart.main(Native Method)
05-20 01:48:35.312: E/AndroidRuntime(23032): Caused by: android.view.InflateException: Binary XML file line #9: Error inflating class com.origamilabs.library.views.StaggeredGridView
05-20 01:48:35.312: E/AndroidRuntime(23032):    at android.view.LayoutInflater.createView(LayoutInflater.java:518)
05-20 01:48:35.312: E/AndroidRuntime(23032):    at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:570)
05-20 01:48:35.312: E/AndroidRuntime(23032):    at android.view.LayoutInflater.rInflate(LayoutInflater.java:623)
05-20 01:48:35.312: E/AndroidRuntime(23032):    at android.view.LayoutInflater.inflate(LayoutInflater.java:408)
05-20 01:48:35.312: E/AndroidRuntime(23032):    at android.view.LayoutInflater.inflate(LayoutInflater.java:320)
05-20 01:48:35.312: E/AndroidRuntime(23032):    at android.view.LayoutInflater.inflate(LayoutInflater.java:276)
05-20 01:48:35.312: E/AndroidRuntime(23032):    at com.actionbarsherlock.internal.ActionBarSherlockCompat.setContentView(ActionBarSherlockCompat.java:853)
05-20 01:48:35.312: E/AndroidRuntime(23032):    at com.actionbarsherlock.app.SherlockActivity.setContentView(SherlockActivity.java:229)
05-20 01:48:35.312: E/AndroidRuntime(23032):    at com.tomsyweb.suna.MainActivity.onCreate(MainActivity.java:72)
05-20 01:48:35.312: E/AndroidRuntime(23032):    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
05-20 01:48:35.312: E/AndroidRuntime(23032):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1615)
05-20 01:48:35.312: E/AndroidRuntime(23032):    ... 11 more
05-20 01:48:35.312: E/AndroidRuntime(23032): Caused by: java.lang.reflect.InvocationTargetException
05-20 01:48:35.312: E/AndroidRuntime(23032):    at java.lang.reflect.Constructor.constructNative(Native Method)
05-20 01:48:35.312: E/AndroidRuntime(23032):    at java.lang.reflect.Constructor.newInstance(Constructor.java:415)
05-20 01:48:35.312: E/AndroidRuntime(23032):    at android.view.LayoutInflater.createView(LayoutInflater.java:505)
05-20 01:48:35.312: E/AndroidRuntime(23032):    ... 21 more
05-20 01:48:35.312: E/AndroidRuntime(23032): Caused by: java.lang.NoClassDefFoundError: android.support.v4.util.SparseArrayCompat
05-20 01:48:35.312: E/AndroidRuntime(23032):    at com.origamilabs.library.views.StaggeredGridView.<init>(StaggeredGridView.java:297)
05-20 01:48:35.312: E/AndroidRuntime(23032):    at com.origamilabs.library.views.StaggeredGridView.<init>(StaggeredGridView.java:304)
05-20 01:48:35.312: E/AndroidRuntime(23032):    ... 24 more

安装Android SDK Tools Rev. 22,Android SDK Build-tools和更新Google Play服务后,问题就出现了。

而在此错误中

  

引起:java.lang.NoClassDefFoundError:android.support.v4.util.SparseArrayCompat

并注意到对于所有“android.support.v4”导入,Javadoc无法访问

  

注意:此元素既没有附加源也没有附加Javadoc,因此找不到Javadoc。

问题可能是由于Android支持库。

希望所有这些信息都能帮助您找到解决方案。

6 个答案:

答案 0 :(得分:39)

右键点击您的项目 - &gt;构建路径 - &gt;配置构建路径 - &gt;订单和导出标签。

确保选中“Android私有库”进行导出。

如果您已从libs /文件夹中添加了任何库,请将其删除,因为它们会自动添加到“Android私有库”部分中。

答案 1 :(得分:1)

我总是得到这个,只需重新启动eclipse即可在MAC笔记本电脑上解决它。

答案 2 :(得分:1)

虽然您的编译版本与您的Minimum Required SDK版本不同,但android会创建appcompat,创建的appcompat可能会引用它自己的support-v4,而support-v4版本可能与{ {1}}您已经使用过,即使您拥有兼容的support-v7。我解决了这个问题只是为了让Minimum Required SDK版本与编译版本相同。希望能帮到每个人。

答案 3 :(得分:0)

右键单击项目 - 属性 - java构建路径 - 订购和导出 - 勾选Android私有库和您添加的所有库

答案 4 :(得分:0)

解决方案:

  • 列表项
  • 检查出口订单
  • 启用Multi Dex
  • 检查布局中的api视图级别。我遇到了与searchView相同的问题。我在添加searchview时检查了api级别,但是将实现SearchView.OnQueryTextListener添加到类文件中。
  • 检查支持库v4,v7等

答案 5 :(得分:0)

您可能想查看android的官方文档。

以最低SDK(15)运行我的应用时,我在以下发生了此错误:

Fatal Exception: java.lang.NoSuchMethodError: android.util.LongSparseArray.removeAt

在这里阅读了实际的android文档后: https://developer.android.com/reference/android/util/LongSparseArray(仅在API级别16中添加)

如果您使用第三方库(在我的情况下,我使用的是 Chuck ),则可能想问问他们是否支持最低级别的SDK API。否则,增加您的最低SDK使其与最低API库相匹配,或者这样做(不建议这样做,会使您的应用程序崩溃)

// AndroidManifest
<manifest 
  <uses-sdk tools:overrideLibrary="com.readystatesoftware.chuck, your.another.package.here" />

  <application>
  // ommited...
  </application>
</manifest