Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/214.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何保护安卓jar_Android_Proguard - Fatal编程技术网

Android 如何保护安卓jar

Android 如何保护安卓jar,android,proguard,Android,Proguard,我知道如何proguard android项目,但目前我使用android做一个jar,以便人们可以在android应用程序中使用我的jar,但我想将我的jar转换为proguard。我使用了proguard工具,我的.pro文件是: -libraryjars 'D:\Android\android-sdk\platforms\android-7\android.jar' -optimizationpasses 5 -dontusemixedcaseclassnames -dontski

我知道如何proguard android项目,但目前我使用android做一个jar,以便人们可以在android应用程序中使用我的jar,但我想将我的jar转换为proguard。我使用了proguard工具,我的.pro文件是:

-libraryjars 'D:\Android\android-sdk\platforms\android-7\android.jar'

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

-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);
}
//公共无效setCahceImage(){ //if(gifDecoder==null){ //gifDecoder=新的gifDecoder(本); // } //cacheImage=true; //gifdecover.setCacheImage(true,上下文); //}

} 当我使用proguard工具对文件进行proguard时,gf2.setGifImage(R.drawable.a2);
gf2.设置GifImageType(GifImageType.COVER);gf1.showcolve()等等,所有未从jar调用的公共方法将以下内容添加到您的
proguard.config
。我认为这将有助于保存枚举:

-keep public enum com.ant.liao.GifView.GifImageType$** {
    **[] $VALUES;
    public *;
}
或绕过定义枚举的类:

-keep class com.ant.liao.GifView { *; }

将以下内容添加到
proguard.config
。我认为这将有助于保存枚举:

-keep public enum com.ant.liao.GifView.GifImageType$** {
    **[] $VALUES;
    public *;
}
或绕过定义枚举的类:

-keep class com.ant.liao.GifView { *; }
-injars GifView.jar -outjars G.jar

-libraryjars'D:\Android\Android sdk\platforms\Android-7\Android.jar'

-优化!代码/简化/算术,!字段/,!类/合并/ -优化过程5 -dontusemixedcaseclassnames -不要翻转 -冗长的

-keep public class*扩展android.app.Activity

-keep public class*扩展android.app.Application

-keep public class*扩展了android.app.Service

-keep public class*扩展了android.content.BroadcastReceiver

-keep public class*扩展了android.content.ContentProvider

-keep public class*扩展了android.app.backup.BackupAgentHelper

-keep public class*扩展了android.preference.preference

-保持公共类com.android.vending.licensing.ILicensingService -保持公共接口com.ant.liao.GifAction -keepclassmembers类com.ant.liao.GifView{ 公开无效(); 公共无效集*(*); 公开展览*()

} -保持类com.ant.liao.GifImageType{*;}

-保持公共接口com.asqw.android.Listener{ 受公众保护; }

-keepclassswithmembers类*{ public(android.content.Context,android.util.AttributeSet); }

-keepclassswithmembers类*{ public(android.content.Context,android.util.AttributeSet,int); }

-keepclassmembers类*扩展了android.app.Activity{ public void*(android.view.view); }

-keep class*扩展android.os.Parcelable{ 公开静态最终android.os.Parcelable$Creator*; }

还保留-枚举。保留中所需的特殊静态方法 枚举类。 -keepclassmembers枚举*{ 公共静态*[]值(); 公共静态*valueOf(java.lang.String); }

保留名称-本机方法名称。保留所有本机类/方法名称。 -保留类成员,允许收缩类*{ 本地人; } 我从gifView java文件中获取eunm,并将eunm GifImageType作为一个单独的java文件 -outjars G.jar

-libraryjars'D:\Android\Android sdk\platforms\Android-7\Android.jar'

-优化!代码/简化/算术,!字段/,!类/合并/ -优化过程5 -dontusemixedcaseclassnames -不要翻转 -冗长的

-keep public class*扩展android.app.Activity

-keep public class*扩展android.app.Application

-keep public class*扩展了android.app.Service

-keep public class*扩展了android.content.BroadcastReceiver

-keep public class*扩展了android.content.ContentProvider

-keep public class*扩展了android.app.backup.BackupAgentHelper

-keep public class*扩展了android.preference.preference

-保持公共类com.android.vending.licensing.ILicensingService -保持公共接口com.ant.liao.GifAction -keepclassmembers类com.ant.liao.GifView{ 公开无效(); 公共无效集*(*); 公开展览*()

} -保持类com.ant.liao.GifImageType{*;}

-保持公共接口com.asqw.android.Listener{ 受公众保护; }

-keepclassswithmembers类*{ public(android.content.Context,android.util.AttributeSet); }

-keepclassswithmembers类*{ public(android.content.Context,android.util.AttributeSet,int); }

-keepclassmembers类*扩展了android.app.Activity{ public void*(android.view.view); }

-keep class*扩展android.os.Parcelable{ 公开静态最终android.os.Parcelable$Creator*; }

还保留-枚举。保留中所需的特殊静态方法 枚举类。 -keepclassmembers枚举*{ 公共静态*[]值(); 公共静态*valueOf(java.lang.String); }

保留名称-本机方法名称。保留所有本机类/方法名称。 -保留类成员,允许收缩类*{ 本地人; }
我从gifView java文件中获取eunm,并将eunm GifImageType作为一个单独的java文件

我使用了2种方法来减少我的错误,只有GifImageType.COVER没有找到,你能告诉我如何减少它吗?将枚举类定义为static:
公共静态枚举GifImageType{…}
并查看它是否有帮助,或者如果它仍然没有帮助,则将第二个选项更改为此
-keep class com.ant.liao.GifView
。(注意:末尾没有括号)我使用了-keep class com.ant.liao.GifView也没有用然后添加这个
-dontwarn com.ant.liao.GifView
我使用了2个方法减少了我的错误,只有GifImageType.COVER没有找到,你能告诉我如何减少它吗?将枚举类定义为静态:
公共静态枚举GifImageType{…}
并查看它是否有帮助,或者如果它仍然没有帮助,则将第二个选项更改为此
-keep class com.ant.liao.GifView
。(注意:末尾没有括号)我使用了-keep class com.ant.liao.GifView也没有用然后添加这个
-dontwarn com.ant.liao.GifView