使用android兼容包android-support-v4.jar出现的一些问题

转载 2012年03月28日 17:59:52
 

使用android兼容包android-support-v4.jar出现的一些问题

分类: android java 765人阅读 评论(0) 收藏 举报

项目需要用到ViewPager,毫不犹豫的引入了官方提供的android-support-v4.jar

开发过程平淡无奇,签名打包时出现了两个问题

1.使用eclipse导出签名apk出现错误

[java] view plaincopy
  1. [2011-11-03 16:07:52 - AndroidViewPager] Proguard returned with error code 1. See console  
  2. [2011-11-03 16:07:52 - AndroidViewPager] Note: there were 95 duplicate class definitions.  
  3. [2011-11-03 16:07:52 - AndroidViewPager] Warning: android.support.v4.os.ParcelableCompatCreatorHoneycombMR2: can't find superclass or interface android.os.Parcelable$ClassLoaderCreator  
  4. [2011-11-03 16:07:52 - AndroidViewPager] Warning: android.support.v4.app.ActivityCompatHoneycomb: can't find referenced method 'void invalidateOptionsMenu()' in class android.app.Activity  
  5. [2011-11-03 16:07:52 - AndroidViewPager] Warning: android.support.v4.app.ActivityCompatHoneycomb: can't find referenced method 'void dump(java.lang.String,java.io.FileDescriptor,java.io.PrintWriter,java.lang.String[])' in class android.app.Activity  
  6. [2011-11-03 16:07:52 - AndroidViewPager] Warning: android.support.v4.os.ParcelableCompatCreatorHoneycombMR2: can't find referenced class android.os.Parcelable$ClassLoaderCreator  
  7. [2011-11-03 16:07:52 - AndroidViewPager] Warning: android.support.v4.os.ParcelableCompatCreatorHoneycombMR2: can't find referenced class android.os.Parcelable$ClassLoaderCreator  
  8. [2011-11-03 16:07:52 - AndroidViewPager] Warning: android.support.v4.view.MenuCompatHoneycomb: can't find referenced method 'void setShowAsAction(int)' in class android.view.MenuItem  
  9. [2011-11-03 16:07:52 - AndroidViewPager] Warning: there were 3 unresolved references to classes or interfaces.  
  10. [2011-11-03 16:07:52 - AndroidViewPager]          You may need to specify additional library jars (using '-libraryjars'),  
  11. [2011-11-03 16:07:52 - AndroidViewPager]          or perhaps the '-dontskipnonpubliclibraryclasses' option.  
  12. [2011-11-03 16:07:52 - AndroidViewPager] Warning: there were 3 unresolved references to program class members.  
  13. [2011-11-03 16:07:52 - AndroidViewPager]          Your input classes appear to be inconsistent.  
  14. [2011-11-03 16:07:52 - AndroidViewPager]          You may need to recompile them and try again.  
  15. [2011-11-03 16:07:52 - AndroidViewPager]          Alternatively, you may have to specify the options   
  16. [2011-11-03 16:07:52 - AndroidViewPager]          '-dontskipnonpubliclibraryclasses' and/or  
  17. [2011-11-03 16:07:52 - AndroidViewPager]          '-dontskipnonpubliclibraryclassmembers'.  
  18. [2011-11-03 16:07:52 - AndroidViewPager] java.io.IOException: Please correct the above warnings first.  
  19. [2011-11-03 16:07:52 - AndroidViewPager]    at proguard.Initializer.execute(Initializer.java:308)   
  20. [2011-11-03 16:07:52 - AndroidViewPager]    at proguard.ProGuard.initialize(ProGuard.java:210)  
  21. [2011-11-03 16:07:52 - AndroidViewPager]    at proguard.ProGuard.execute(ProGuard.java:85)  
  22. [2011-11-03 16:07:52 - AndroidViewPager]    at proguard.ProGuard.main(ProGuard.java:499)  

原因:

[java] view plaincopy
  1. Android Compatibility library referencing classes that only exist in recent versions of the Android API  
解决方法:在项目的proguard.cfg文件中添加


[java] view plaincopy
  1. -dontwarn **HoneycombMR2  
  2. -dontwarn **CompatICS  
  3. -dontwarn **Honeycomb  
  4. -dontwarn **CompatIcs*  
  5. -dontwarn **CompatFroyo  
  6. -dontwarn **CompatGingerbread  
具体要dontwarn哪些条目,可以根据报错来进行相应的修改


2.使用命令行脚本生成的apk无法运行,当运行到android-support-v4.jar相关的类时,出现ClassNotFoundException
解决方法:运行dx命令时,将android-support-v4.jar加入class.dex

[java] view plaincopy
  1. %DX% --dex --output=%OUT_FOLDER%\classes.dex %OUT_CLASS_FOLDER% %THIRD_JAR%  

参考

  1. http://stackoverflow.com/questions/7993608/i-am-getting-error-while-export-my-android-application-from-eclipse-which-use-an
  2. http://snmoney.blog.163.com/blog/static/440058201181011468397/

【bug记录】The type android.support.v4.app.ActivityCompatApi23$RequestPermissionsReques

在打开程序的时候出现了以上问题。 找了半天。百度的结果都是说jar包没有引用。最后发现原因是因为在引用library的时候,library本身引用了两个v4包造成了如上问题。删除了一个v4包就解决了...
  • mkmarcy
  • mkmarcy
  • 2016年10月27日 09:29
  • 1130

ActivityCompat使用

今天在查看资料的时候看到了ActivityCompat这个类来启动Activity,ActivityCompat是v4包里新加的一个类,打开了看了看代码: public static void st...
  • YULU5216
  • YULU5216
  • 2016年05月25日 11:02
  • 6508

Kotlin Unresolved reference: 解决办法

kotlin Unresolved reference:错误的解决办法
  • yuzhiqiang_1993
  • yuzhiqiang_1993
  • 2018年01月05日 16:42
  • 56

Kotlin编程之Glide v4 Generated API(Unresolved reference GlideApp)

Kotlin编程开发之Glide V4 Generated API,解决不能引用GlideApp问题。
  • hexingen
  • hexingen
  • 2017年06月09日 20:42
  • 1377

Android Studio 使用Support.v7和support.v4包遇到的各种问题

使用v7和v4包时会出现这种情况: /Users/luolawn/Project/AndroidStudioProject/news/ThirdLib/PullToRefreshLibrary/bu...
  • luo15309823081
  • luo15309823081
  • 2015年05月05日 12:56
  • 15833

Android java.lang.NoClassDefFoundError的一种解决方法

在开发过程中,遇到一个这样的问题:java.lang.NoClassDefFoundError: android.support.v4.util.SparseArrayCompat,这个问题很奇怪,J...
  • leehong2005
  • leehong2005
  • 2013年07月22日 12:06
  • 56361

java.lang.NoClassDefFoundError: android.os.AsyncTask

这个Bug发生在这样的环境: 你有很多的线程在同时运行,并且每个线程都需要持续运行相当长一些时间; 其中一些是用AsyncTask去作的,并且AsyncTask在其他的线程执行顺序之后。      ...
  • sxfda
  • sxfda
  • 2016年08月08日 11:23
  • 530

AsyncTask的理解(一)

线程任务的调度 内部会创建一个进程作用域的线程池来管理要运行的任务,也就就是说当你调用了AsyncTask#execute()后,AsyncTask会把任务交给线程池,由线程池来管理创建Threa...
  • JACKLIAO1
  • JACKLIAO1
  • 2015年10月12日 13:03
  • 1005

安卓API21及以上版本,利用 MediaProjectionManager 截屏

安卓API21及以上版本,利用 MediaProjectionManager 截屏
  • adsl624153
  • adsl624153
  • 2017年03月12日 18:31
  • 540

Android源码解析——AsyncTask

简介AsyncTask 在Android API 3引入,是为了使UI线程能被正确和容易地使用。它允许你在后台进行一些操作,并且把结果带到UI线程中,而不用自己去操纵Thread或Handler。它被...
  • maosidiaoxian
  • maosidiaoxian
  • 2016年05月01日 17:43
  • 2354
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:使用android兼容包android-support-v4.jar出现的一些问题
举报原因:
原因补充:

(最多只允许输入30个字)