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

之前只是写代码,没打包过。今天配置好打包文件准备打包生成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包名称等小部分内容。

你可能感兴趣的:(svn更新,Android代码混淆)