2013-10-23 523 views
2

我有一個項目使用新的RenderScript support library,並且還使用proguard進行模糊處理。Proguard + RenderScript支持庫錯誤

當使用普通的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

-dontwarn android.support.v8 **

這其實昨天遇到...

+0

有趣的 - 所以是,由於採用隱藏式的API? –

+0

不會。這裏發生的情況是,這兩個API隱藏在適當的API級別檢查之後,以便運行它們(但它們不存在於較早的目標版本中,因此不在支持庫中)。我們也可以通過反思間接獲得這些方法,但我們還沒有做過那樣的事情。 –

相關問題