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

 

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

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

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

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

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

[java]  view plain copy
  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 plain copy
  1. Android Compatibility library referencing classes that only exist in recent versions of the Android API  
解决方法:在项目的proguard.cfg文件中添加

 
 
[java]  view plain copy
  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 plain copy
  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/
android-support-v4.jar是一个由Google开发的Android支持库,它提供了在较旧版本的Android平台上使用最新API的功能。最新版本的android-support-v4.jar是28.0.0,它可以通过Android Studio的Gradle构建工具来引用和使用android-support-v4.jar含了一系列的类和方法,可以帮助开发者在较旧的Android版本上实现新功能和提升应用性能。这个库主要括了以下几个方面的功能: 1. Fragments支持:Fragments是一种用于创建灵活的用户界面的组件,该库提供了对Fragments的完整支持,使开发者能够在较旧的Android设备上使用此功能。 2. 资源兼容性:该库含了一些辅助类,使开发者能够使用较新版本的资源,如主题、样式、尺寸等,而不会出现兼容问题。 3. 动画支持:android-support-v4.jar提供了一些动画效果的类和方法,可以帮助开发者实现平滑的过渡效果和用户交互效果。 4. 权限管理:此库还提供了一些类和方法,用于在较旧的Android版本上处理权限请求和管理。 5. 工具类:android-support-v4.jar中还含了一些常用的工具类,如日志工具类、日期时间工具类等,方便开发者进行应用开发。 总之,android-support-v4.jar是一个重要的Android支持库,为开发者提供了在较旧版本的Android设备上使用最新API的能力。开发者可以通过Android Studio中的Gradle构建工具引用此库,从而提高应用的兼容性和性能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值