由Android打包混淆、导签名引发的几个事情及解决办法

来源:互联网 发布:数据库的三级模式 编辑:程序博客网 时间:2024/05/16 08:28
之前只是写代码,没打包过。今天配置好打包文件准备打包生成key,报错了,说-jar找不到、、好上火,转而检查路径,进dos看看是不是Jdk没装好或者有中文路径;检查过后一切ok,这就怪了。 环境是去年搭建的,按道理说不应该有问题--Eclipse+adt+sdk,最传统的搭建方式。然而,我用adt-buddle导出的时候竟然是可以的!!!这至少说明了我写的混淆配置文件是OK的。
难道说这个配置不行了???? 其实我深信的确是环境的问题,但是我又找不到问题根源,网上一大堆的类似问题都是一些不相关的解释。
准备好adt-buddle之后,看了看,缺少SVN插件,公司用这个;好,
help-install new software SVN- http://subclipse.tigris.org/update_1.6.x 直接加载竟然不行!!!!好吧,我承认有可能是网络的问题。然后纠结了半天我就一个一个文件的下载,竟然可以!! 你这是要闹哪样、、
其中git已经内嵌在里面了;
还有,里面只有一种版本的sdk,最高版本--18;但是有点忒高,在线更新又太慢,咋办--- 好办,把你之前的sdk目录下面的platform下的sdk的各个版本都原样copy到现在的sdk-platform目录下,一切照旧,建立工程的时候就会显示原来自己常用的sdk版本。
附录自己的打包混淆的配置文件--proguard.cfg:
-optimizationpasses 5-dontusemixedcaseclassnames-dontskipnonpubliclibraryclasses-dontpreverify-verbose-ignorewarnings-dontwarn-dontobfuscate -dontoptimize  -libraryjars libs/android-support-v4.jar-libraryjars libs/Core.jar-libraryjars libs/yht.BASE64Decoder.jar-dontskipnonpubliclibraryclassmembers-dontskipnonpubliclibraryclasses-optimizations !code/simplification/arithmetic,!field/*,!class/merging/*-keep public class * extends android.app.Activity-keep public class * extends android.app.Application-keep public class * extends android.app.Service-keep public class * extends android.content.BroadcastReceiver-keep public class * extends android.content.ContentProvider-keep public class * extends android.app.backup.BackupAgentHelper-keep public class * extends android.preference.Preference-keep public class com.android.vending.licensing.ILicensingService-keep public class com.broadtext.phreportfault.entity.**{*;}-keep public class com.broadtext.phreportfault.service.result.**{*;}-keep class android.support.v4.**{*;}-keep class com.google.zxing.**{*;}-keep class Decoder.BASE64Encoder.**{*;}-keepattributes Signature-keepclassmembers class * implements java.io.Serializable {    static final long serialVersionUID;    private static final java.io.ObjectStreamField[] serialPersistentFields;    private void writeObject(java.io.ObjectOutputStream);    private void readObject(java.io.ObjectInputStream);    java.lang.Object writeReplace();    java.lang.Object readResolve();}-keepclasseswithmembernames class * {    native <methods>;}-keepclasseswithmembers class * {    public <init>(android.content.Context, android.util.AttributeSet);}-keepclasseswithmembers class * {    public <init>(android.content.Context, android.util.AttributeSet, int);}-keepclassmembers class * extends android.app.Activity {   public void *(android.view.View);}-keepclassmembers enum * {    public static **[] values();    public static ** valueOf(java.lang.String);}-keep class * implements android.os.Parcelable {  public static final android.os.Parcelable$Creator *;}-keep class * implements android.os.Serializable {  *;}-keepclassmembers class fqcn.of.javascript.interface.for.webview {   public *;}
其实我们使用上述代码时,大部分可以直接copy,只是修改第三方jar包名称等小部分内容。

0 0