1

私のコードは正常に動作しますが、プロガードを適用した後、次の例外が発生します

05-04 16:12:00.803: E/AndroidRuntime(22257): java.lang.NoSuchMethodError: com.android.internal.telephony.ITelephony.a

私は持ってItelephony.aidlいますが、まだエラーが発生しています。これを回避する方法があるかどうか誰か教えてもらえますか?

Google では、インターフェイス、インターフェイス メンバー、および内部クラスを内部クラス メンバーと共に保持する方法の例について、これ以上の情報を得ることができませんでした。

実際には、アプリにすべてを保持したいのですが、難読化して最適化するだけです。それを達成する方法はありますか?

4

1 に答える 1

7

ITelephonyクラスをproguardから除外する必要があります。つまり、これを追加します...

-keep class com.android.internal.telephony.ITelephony { *; }

...proguard.cfgファイルへのエントリ。プロジェクトのルート フォルダーにあります。

Proguardは、コードを難読化するツールです。つまり、さまざまな最適化 (クラスの名前変更など) を適用することにより、コードをよりコンパクトにし、他のユーザーにとって読みにくくします。そのため、動的リフレクション呼び出しを検討している場合など、場合によってはこれが機能に悪影響を与える可能性があります。

乾杯!

于 2013-05-04T11:04:24.730 に答える