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配置工作嗎?
有趣的 - 所以是,由於採用隱藏式的API? –
不會。這裏發生的情況是,這兩個API隱藏在適當的API級別檢查之後,以便運行它們(但它們不存在於較早的目標版本中,因此不在支持庫中)。我們也可以通過反思間接獲得這些方法,但我們還沒有做過那樣的事情。 –