3

新しいRenderScript サポート ライブラリを使用しているプロジェクトがあり、難読化のために proguard も使用しています。

Proguard は、通常の RenderScript SDK (android.renderscript.*) を使用する場合、コードでうまく機能していました。また、proguard が実行されない非リリース ビルドでコンパイルされた場合、コードは RenderScript サポート ライブラリでうまく機能します。

しかし、この 2 つを組み合わせると、結果は次のようになります。

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'.

私はプロガードが危険であることを十分に知っています。私が学んだことの 1 つは、警告/エラー メッセージの提案が必ずしも問題の実際の原因を示しているとは限らないということです。今回も例外ではありません。警告で提案された変更を実装しても、出力は変化しません。

RenderScript サポート ライブラリは proguard で使用できますか? もしそうなら、それを機能させるためにプロガード設定に追加する必要がある魔法はありますか?

4

3 に答える 3