Android ProGuard 设置与使用许可服务器不强制关闭的应用程序一起使用?

标签 android

我似乎已经尝试了互联网上各种文章中的所有设置,包括通过 -keep public class 排除我的所有类(class)。

应该使用什么设置才能不强制关闭?在这一点上,如果我能得到混淆,没有别的就好了。

以下是我尝试过的示例配置,但我的应用程序仍然强制关闭。有什么想法吗?
我关注了这篇文章以及其他文章:http://android-developers.blogspot.com/2010/09/proguard-android-and-licensing-server.html

仍然没有运气。任何帮助,将不胜感激。 谢谢

-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 com.android.vending.licensing.ILicensingService

-keepclasseswithmembernames class * {
    native ;
}

-keepclasseswithmembernames class * {
    public (android.content.Context, android.util.AttributeSet); 
}

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

-keepclassmembers enum * {
    public static **[] values();
    public static ** valueOf(java.lang.String);
}

类似的选项:

-target 1.6 
-optimizationpasses 5 
-allowaccessmodification 
-dontusemixedcaseclassnames 
-dontskipnonpubliclibraryclasses 
-dontpreverify 
-verbose 
-dump class_files.txt 
-printseeds seeds.txt 
-printusage unused.txt 
-printmapping mapping.txt 

# The -optimizations option disables some arithmetic
# simplifications that Dalvik 1.0 and 1.5 can't handle. 

-optimizations !code/simplification/arithmetic 

-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 View { 
public (android.content.Context); 
public (android.content.Context, android.util.AttributeSet); 
public (android.content.Context, android.util.AttributeSet, int); 
public void set*(...); 
} 

-keep public class com.android.vending.licensing.ILicensingService

-keepclassmembers enum * {
    public static **[] values();
    public static ** valueOf(java.lang.String);
}


-keep interface com.android.vending.licensing.*
-keep public interface com.android.vending.licensing.ILicenseResultListener
-keep public interface com.android.vending.licensing.ILicensingService
-keepclassmembers enum * {
public static **[] values();
public static ** valueOf(java.lang.String);
} 

最佳答案

只需在 proguard.cfg 文件中注释这一行并清理/重建您的项目:

#-keep public class com.android.vending.licensing.ILicensingService

关于Android ProGuard 设置与使用许可服务器不强制关闭的应用程序一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3844363/

相关文章:

交换 fragment 时 Android FAB anchor 发生变化

android - Android中的离线语音识别(JellyBean)

java - 无法使用自定义项目颜色设置服务布局样式

android - 基本微调器示例

android - 缺少获取 android.compileSdkVersion !错误梯度构建

Android 共享元素转换不适用于 <include> 标记

java - 如何从新对象实例方法声明(嵌套)返回值?

java - Android 表格单元格边框

android - 当我尝试提供接口(interface) Domain Mapper<PlayerData Entity, List<PlayerModel>> 的实现时出错

java - ParseQuery - 正确处理 IndexOutOfBoundsException - Parse.com?