問題タブ [proguard]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
1803 参照

java - XML レイアウトでのみ参照されるイベント ハンドラー メソッドを削除しないように、Android で Proguard を構成するにはどうすればよいですか?

ユーザーが特定の UI 要素をタップしたときに実行されるハンドラー メソッドが、使用されていることを確認できないため、Proguard によって取り除かれているアクティビティがいくつかあります。

これに対する最善の解決策は何ですか?

  • proguard のコード圧縮機能をオフにします (多くの分野で有益であるため、理想的ではありません)。

  • 残しておきたいメソッドに注釈を付ける方法はありますか?

  • 「on」で始まるメソッドを削除しないようにプロガード構成を微調整するにはどうすればよいですか?

この行を追加しようとしました (つまり、Activity オブジェクトのサブクラスから継承するメソッドをトリムしないでください) が、目的の効果がありませんでした。クラスには適用されると思いますが、メソッドには適用されません。

0 投票する
1 に答える
915 参照

proguard - Proguard パラメータ呼び出しのパスに問題のある med スペースがあります

このパラメーターを Proguard に送信しようとすると、次の例外がスローされます。

java -Xms128M -Xmx256M -jar "../../../tools/proguard/proguard.jar" @game_specific.pro -libraryjars "C:/Program Files/Java/jdk1.5.0_22/jre/lib/rt .jar" エラー: クラスパス区切り文字 ';' が必要です 引数番号3の「Files/Java/jdk1.5.0_22/jre/lib/rt.jar」の前

これはファイル名にスペースが含まれているためです。" と ' を使用してさまざまな回避策を試しましたが、パスで progra~1 を使用した場合にのみ機能します。 Javaへのさまざまなパスを持つ別のコンピューター。

私は何を間違っていますか?

0 投票する
3 に答える
2701 参照

android - デフォルトの proguard.cfg にエラーがありますか?

Eclipse で新しい Android プロジェクトを作成すると、次のデフォルトの proguard.cfg ファイルが作成されます。

この-optimizations行は、ファイルの残りの部分をコメントアウトしていることに注意してください。それが意図的なものなのか、それともタイプミスなのか、その行の最後の2文字を逆にする必要があるのか​​ 疑問に思っています:

ADT プラグイン 9.0 と Eclipse 3.6.1 を使用しています。

0 投票する
1 に答える
6720 参照

android - 新しいプロジェクトを開始しようとしていますが、proguard.cfg が見つかりません

新しいプロジェクトを作成するまで、Eclipseは残りのプロジェクトで問題なく動作しているように見えました。作成しようとすると、Eclipse から C:\android\tools\lib...\proguard.cfg が見つからないというダイアログが表示されます。先に進んでプロジェクトを作成すると、R.java は生成されません。私はスタックオーバーフローを検索しましたが、プロジェクトを再構築したり、プロジェクトをきれいにしたりしてもうまくいきません。アイデアはありますか?ありがとう

0 投票する
3 に答える
59093 参照

android - Android:Proguardの推奨構成は何ですか?

私はAndroid用のアプリを開発しており、Proguardを使用してコードを難読化しています。

現在、ProGuard構成を使用しています。

レイアウトXMLで使用されるカスタムコンポーネント名を維持するには:

デバッグログを削除するには:

レイアウトのonClickで呼び出されるメソッドの名前を変更しないようにするには:

質問は(あります):

他のタグをお勧めしますか?なぜそして何のために?

proguard.cfgファイルにコメントを付けることは可能ですか?他の開発者が私が追加した理由について疑問を持たないように、いくつかの行が何をしているのかについてコメントを付けてもらいたいと思います。

また、プロガードでは、ファイルのコメントヘッダーを(著作権で)維持することは可能ですか?そうでない場合、またはそれが適切なポリシーではない場合、どこに著作権を追加する必要がありますか?

0 投票する
1 に答える
710 参照

android - Android アプリでの startBluetoothSCO() のリフレクションを使用した ProGuard の使用

リフレクションを使用して AudioManager.startBluetoothSco() メソッドを呼び出しています。2.2 以降の SDK にのみ存在するため、リフレクションを介して行う必要がありますが、私のアプリは 2.0 の最小バージョン用にビルドされています。ProGuard を使用せずにアプリをコンパイルすると、すべて正常に動作します。メソッドは 2.2 では適切に呼び出されますが、それ以前のバージョンではまったく呼び出されません。しかし、ProGuard を使用すると、まったく機能しません。これを修正するProGuard構成にKEEPステートメントがあると思いますが、それがどうあるべきかわかりません。私のコードからの3行は次のとおりです。

0 投票する
1 に答える
1232 参照

android - proguardの実行後にAndroid youtube/gdata APIが機能しない

特にプロガードを実行した後、YouTube api で問題が発生した人はいますか? YouTube から動画を取得するための私のコードは、proguard を実行する前は問題なく機能していましたが、proguard を実行した後、奇妙な例外が発生します

コンテンツ タイプをどこにも設定しておらず、新しいプロジェクトの作成中に生成されたデフォルトの proguard.cfg ファイルを使用しています。
プロガードを実行した後、誰かが同様の問題に直面しましたか? 難読化も最適化もせずにプロガードを試してみましたが、同じ結果が得られました。

0 投票する
2 に答える
1060 参照

android - build.xmlのみを使用してビルドターゲットを挿入しますか?

ビルドターゲットを個別に実行すると、コンパイルと最適化が可能なbuild.xmlがあります-「antコンパイル」に続いて「および最適化」。

問題は、通常はリリース バイナリを生成するために必要なすべてを実行する「ant リリース」を実行したいということですが、チェーンにビルド ターゲットを挿入する必要があります。ターゲットは「最適化」と呼ばれ、プロガード最適化を実行します。 /shrinker は、"dex" ステージがバイト コードをビルドする直前のクラス ファイルに対して実行します。

テンプレート ファイル /opt/android-sdk-linux_x86/platforms/android-8/templates/android_rules.xml には次のルールが含まれています。出てくるさまざまな SDK ごとにファイルを再変更する必要があります (毎回新しい android_rules.xml ファイルを使用)。

テンプレート xml を変更し、代わりにすべてのコンパイル ルールを build.xml に入れる代わりの方法はありますか?

0 投票する
1 に答える
1518 参照

java - Proguardを.jarに適合させ、プライベートメソッドを非表示にする方法は?

私はプロガードを使用して私のコードを隠しています..そしてidは機能しているようです...'半分'。私はそれがデコードされないようにし、動作させ、プライベートがjadに見られないようにしたいだけです。

これが私のJavaコードです

これが私の.proデータです

これが私のjad出力です。

プライベートは別のメソッド名に変更され、他のメソッド名は変更されないため、機能しているように見えますが、デコードされています!!! 私の.proオプションに何か問題がありますか?または..このコードはとても単純だからですか?

みんな助けて;-<

0 投票する
8 に答える
17713 参照

android - org.xmlpull.v1.XmlPullParser での Android ProGuard エラー

アプリケーションを ProGuard でビルドすると、次のメッセージで失敗します。Android SDK によって生成されたデフォルトの proguard.cfg といくつかの -libraryjars を使用します。そのために何ができますか?

明らかに、org.xmlpull.v1.XmlPullParser はプログラム クラスではありません。ProGuard を最新バージョン (4.6) に更新しましたが、同じ警告が表示されます。