• Can't read proguard.ClassPathEntry@1a0c10f (No such file or directory)


    在proguard的旧版本中只会出现类似

    “Can't read  proguard.ClassPathEntry@1a0c10f  (No such file or directory)”

    这种提示是没有找到要混淆的jar包!但是旧版本也不提示具体找不到哪个jar包!

    所以下载proguard4相应的新版本,新版本内容如下

    将新版本内容覆盖到 :(你的SDK目录)\tools\proguard下,SDK路径不能有空格或中文字符!

    1.下载新版本 proguard4.5.1.zip_免费高速下载_新浪爱问共享资料

    http://ishare.iask.sina.com.cn/f/12510145.html?from=like (这个版本如果有错误,会进行详细的提示)

    2.确保你的sdk 以及引用的第三方jar包 的路径中没有空格与中文字符

    3.在proguard.cfg设置 不混淆第三方jar包 例如:

    -dontwarn com.j256.ormlite.android.**

    -dontwarn com.j256.ormlite.dao.**

    -dontwarn com.j256.ormlite.db.**

    -dontwarn com.j256.ormlite.field.**

    -dontwarn com.j256.ormlite.logger.**

    -dontwarn com.j256.ormlite.misc.**

    -dontwarn com.j256.ormlite.stmt.**

    -dontwarn com.j256.ormlite.support.**

    -dontwarn com.j256.ormlite.table.**

    -keep class com.j256.ormlite.** { *; }

    4.   在eclipse中导出混淆后的程序,选择导出签名或者未签名的程序,如下图:

    最后说明一下proguard.cfg的设置说明

    -optimizationpasses 5

    -dontusemixedcaseclassnames 【混淆时不会产生形形色色的类名 】

    -dontskipnonpubliclibraryclasses 【指定不去忽略非公共的库类。 】

    -dontpreverify 【预校验

    -verbose -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 abstract interface com.asqw.android.Listener{

    public protected <methods>;  【所有方法不进行混淆】

    }

    -keep public class com.asqw.android{

    public void Start(java.lang.String); 【对该方法不进行混淆】

    }

    -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 *;

    }

  • 相关阅读:
    LeetCode 252. Meeting Rooms
    LeetCode 161. One Edit Distance
    LeetCode 156. Binary Tree Upside Down
    LeetCode 173. Binary Search Tree Iterator
    LeetCode 285. Inorder Successor in BST
    LeetCode 305. Number of Islands II
    LeetCode 272. Closest Binary Search Tree Value II
    LeetCode 270. Closest Binary Search Tree Value
    LeetCode 329. Longest Increasing Path in a Matrix
    LintCode Subtree
  • 原文地址:https://www.cnblogs.com/ishang/p/3108718.html
Copyright © 2020-2023  润新知