小编Jes*_*sse的帖子

Proguard不会保留班级成员的枚举

我正在开发一个作为java jar分发的库,我正在运行proguard,以便只暴露所需的接口.我有一个配置类,包含一堆成员变量和一些枚举定义.我的proguard脚本保留了成员变量,但枚举定义正在被混淆.我已经尝试了所有我能想到的强迫proguard保留这些内部定义和公共枚举,但我无法让它工作.

现在我正在使用:

-keep public class com.stuff.MyConfigObject {
    public *;
}

-keepclassmembers enum * {
    public static **[] values();
    public static ** valueOf(java.lang.String);
}
Run Code Online (Sandbox Code Playgroud)

如果我尝试:

-keep public enum com.stuff.MyConfigObject.MyEnum
Run Code Online (Sandbox Code Playgroud)

我得到一个模棱两可的错误:"注意:配置引用未知类'com.stuff.MyConfigObject.MyEnum'"

谢谢您的帮助!

java enums proguard

22
推荐指数
1
解决办法
2万
查看次数

在运行时检测硬件加速:Android

是否可以一致地检测活动在创建时是否启用了硬件加速?我担心我的库的用户会在不应该通过清单启用它,而不是专门为我的Activity禁用它(因为我指示他们这样做).

我能找到的唯一可靠信息(http://android-developers.blogspot.com/2011/03/android-30-hardware-acceleration.html)说我可以查询View.isHardwareAccelerated()Canvas.isHardwareAccelerated().但是,出于我的目的,我想确保在显示我的图书馆的活动时它已关闭.到目前为止,当打开或关闭时,我无法得到任何报告一致的是/否的信息.我尝试在虚拟视图中进行黑客攻击,将其设置为我的活动,然后对其进行测试,但它总是返回false.此外,我尝试了测试Window.getAttributes( ).flags,但他们也没有显示它.

我正在测试这个,因为我的库的硬件加速绘制路径无法正常运行,似乎没有任何方法可以修复它.

android hardware-acceleration android-activity

9
推荐指数
2
解决办法
5033
查看次数