皮皮网

皮皮网

【花旗 源码】【b点源码】【通吃指标源码】android support v7源码

时间:2024-11-30 03:15:49 分类:知识

1.如何使用android-support-v7-appcompat
2.Android-support-v7-appcompat.jar中为何会缺少这个文件,是文件路径?

android support v7源码

如何使用android-support-v7-appcompat

       å¦‚果在低版本Android平台上开发一个应用程序,而应用程序又想使用高版本才拥有的功能,就需要使用Support库。

       Android Support v4 是最早(年4月份)实现的库。用在Android1.6 (API lever 4)或者更高版本之上。它包含了相对V4, V大的多的功能。

       ä¾‹å¦‚:Fragment,NotificationCompat,LoadBroadcastManager,ViewPager,PageTabAtrip,Loader,FileProvider 等。详细API 参考 /reference/android/support/v4/app/package-summary.html

       Android Support v7: 这个包是为了考虑Android2.1(API level 7) 及以上版本而设计的,但是v7是要依赖v4这个包的,也就是如果要使用,两个包得同时被引用。 v7支持了Action Bar。

       Android Support v:这个包的设计是为了android 3.2及更高版本的,一般我们都不常用,平板开发中能用到。

       é¦–先要保证Android Support Library 被安装

       ç„¶åŽåœ¨å·¥ç¨‹ä¸­å¢žåŠ ï¼ˆä¾‹å¦‚ support-v4 Library)

       åœ¨ADT中需要按照以下步骤:

       1、右击当前工程,查找Properties

       2、选择Java Build Path

       3、选择Libraries tab,点击右边面板的Add External JARs按钮

       4、选择android-support-v4.jar文件,这一文件的常见路径为:YOUR_DRIVE\android-sdks\extras\android\support\v4\android-support-v4.jar

       5、完成添加后,选择Order and Export标签,确认即可。

       5 v4、v7、v 的例子代码

       4v : <sdk>/extras/android/support/samples/Support4Demos/

       7v : <sdk>/extras/android/support/samples/Support7Demos/

       v : <sdk>/extras/android/support/samples/SupportDemos/

       App Navigation: <sdk>/extras/android/support/samples/SupportAppNavigation/

       æˆ‘们需要使用这个的Toolbar就是需要使用到V7包。

       é¦–先要使用V7包,你得去下载好,使用SDK Manager去下载,是在Extra的AndroidSupport Repository这个东东,应该很快的。下载好之后,可以把里面的\android-sdk-windows\extras\android\support\v7\appcompat\libs,这个路径下的两个JAR包(V4和V7) CTRT C+CTRT V 到你得项目的lib目录地下,然后build path 添加到该project的class path中。对着JAR 包右键,Biuld Path -- >add to Build Path 就可以了。

       ç„¶åŽï¼Œä½ å¯èƒ½ä¼šå‘现还有问题,比如res目录下的style文件出现了问题,客官不要急,这时候你应该把appcompat_v7这个包导入进来,一般来说,我们第一次使用Eclipse的时候,它会自动帮我们导入到我们的workplace中,但是可能某种原因,比如我们一不小心删除了,原来我们没有这个包等等,所以我们需要重新导入,然后你就去\android-sdk-windows\extras\android\support\v7\appcompat(前面的各自不同,看你自己的SDK放在什么位置),这个包导入,最后顺便复制一份到你得workplace中(导入的时候选择复制),然后ok。

       å‡å¦‚你得项目不是位于你得workplace中,而是从外面一些路径导入,那么你应该复制一份进入你的workplace中(导入的时候选择复制),这样也行可以了。

       åœ¨å¯¼å…¥ä½ å¾—appcompat_v7的时候,假如是res的某一些文件出现了问题,比如你的style文件夹得某一些xml文件出现错误,也不要着急,客官,这时候你应该去修改一下project.properties这个文件,把他的最小的sdk改成你已经下载包含的,最大的也是同样,一定需要你下载包含的。

       è¿™æ ·ï¼Œåœ¨ä½ çš„项目中,右键单击properties,然后选择Android,然后library,add,把我们刚才导入的appcompat_v7添加进来,这样就应该能解决问题了。

Android-support-v7-appcompat.jar中为何会缺少这个文件,是文件路径?

       今天用 APK 反编译工具看了一下自己项目生成的 APK 文件,发现代码并没有混淆,于是设置了用 ProGuard 混淆代码,可是混淆是必须在非  Debug 模式才会生效的,即使你是以 Release 模式来 Run As 启动所生成的 APK 包,依然是花旗 源码没有使用 ProGuard  混淆的。于是决定导出一下 Release 版的 APK,导出分“签名”和“不签名”的两种,都这么做了,当然是要签名一下了,所以遇到了后面这两个问题。

       一、strings.xml 的翻译问题

       在你的项目名字上面点鼠标右键,弹出下面的菜单,选择 Android Tools -> Export Signed Application  Package... ,

         

       然后会看到这么一个提示:

       并且得到下面这样的错误描述:

         

       大意是,导出操作因为 Lint Error Checking (检测 Lint 错误) 出现致命错误而退出,b点源码请修正这些错误再运行导出,或者在设置里的  Android -> Lint Error Checking 页面里把 “Run full error check when exporting app”  把选项关掉。

       而错误描述里面的说的是,strings.xml 里面的 app_name 缺少 af(Afrikaans), am(Amharic), ar, bg,  bn-rBD, ca, cs, da, de ... 等语言的翻译,这个可能跟创建工程时自动生成的项目 appcompat_v7 里的 strings.xml  的语言数量有关,我们当然不希望每种语言都翻译一遍啊,纯属吃多了,除非我们真的通吃指标源码想每种语言都翻译。

       另一方面,我们也不希望关掉所有的 Lint Error Checking,所以我们可以这么做,打开eclipse 菜单的 Windows ->  Perferences,

       切换到 Android -> Lint Error Checking 子项下面,下面这是 Missing Translation  的默认设置:

       我们可以把这一项的 Severity 由 Fatal (致命) 修改为 Ignore(忽略) 或者 Warning(警告),如下图:

         

       另:关于多语言翻译的问题,有一个问题是汇编源码详解值得关注的,例如:《Android翻译多国语言字符串注意事项》。

       二、签名 keystore 的逗号问题

       点击确定,然后重新开始前面的步骤,开始导出,这次可以了,下面是导出的界面,选择你要导出的linux 源码组成项目:

         

       后面就是选择 keystore ,你可以选择已经存在的 keystore 或者新建一个  keystore,我选择新建,输入密码,然后进入下面这个设置界面:

         

       下一步,最后生成的时候,我们得到这样一个错误:

         

       Google 一下,找到这么一篇: 《keytool 错误: java.io.IOException: Incorrect AVA  format》,stackoverflow 上也有类似的讨论:keytool error :java.io.IoException:Incorrect AVA  format ,结论都是一样的,原来原因竟然是因为 “,”(逗号) 被认为是特殊字符,这通常发生在书写 “City or Locality”  时,按我们平时的习惯都会写成 “Beijing, China”,而我也不例外的写成了 “GuangXi, China”  ,所以就出错了,找到原因,去掉逗号再试,就 OK 了。

       除了用 Eclipse 以外,还有一种签名方法,就是使用 Keytool 和 Jarsigner 给 app  签名,而这种签名是允许加入这个逗号的,《keytool 错误: java.io.IOException: Incorrect AVA format》  里有提到。

       这里贴一个 keytool  关于特殊字符的说明及用法,摘自:/question/_,

       特殊字符还包括,加号(+),引号("),斜杠(),大于小于号(< 和 >),分号(;) 等,解决的办法是用  转义符。