Proguard + RenderScript支持库错误

时间:2013-10-23 02:36:43

标签: android renderscript

我有一个使用新RenderScript support library的项目,并且还使用proguard进行模糊处理。

使用普通的RenderScript SDK(android.renderscript。*)时,Proguard在代码上工作得很好。当在不发布proguard的非发布版本中编译时,代码可以很好地使用RenderScript支持库。

但是,将两者结合在一起,结果如下:

Warning: android.support.v8.renderscript.RenderScript: can't find referenced class android.os.SystemProperties
Warning: android.support.v8.renderscript.RenderScript: can't find referenced class android.os.SystemProperties
Warning: android.support.v8.renderscript.RenderScriptThunker: can't find referenced method 'android.renderscript.RenderScript create(android.content.Context,int)' in class android.renderscript.RenderScript
      You should check if you need to specify additional program jars.
Warning: there were 2 unresolved references to classes or interfaces.
         You may need to specify additional library jars (using '-libraryjars').
Warning: there were 1 unresolved references to program class members.
         Your input classes appear to be inconsistent.
         You may need to recompile them and try again.
         Alternatively, you may have to specify the option 
         '-dontskipnonpubliclibraryclassmembers'.

我非常了解proguard是危险的。我学到的一件事是,警告/错误消息中的建议往往不一定指向问题的实际原因。这个时间也不例外:在警告中实施建议的更改不会导致输出更改。

RenderScript支持库可以与proguard一起使用吗?如果是这样,我需要添加到我的proguard配置中以使其工作吗?

3 个答案:

答案 0 :(得分:3)

-dontwarn android.support.v8。**

昨天实际遇到过这个......

答案 1 :(得分:0)

对于androidX

-keep类androidx.renderscript。** {*; }

答案 2 :(得分:0)

在使用Renderscript的任何现代应用中,将前两个答案结合起来,您应该将以下内容添加到proguard-rules.pro文件中。

# Render Script
-keep class android.support.v8.renderscript.** { *; }
-keep class androidx.renderscript.** { *; }

这将同时照顾使用Android支持库或Android X的两个应用