問題タブ [android-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 投票する
2 に答える
271 参照

android - これまでで最も奇妙な Android バグ - ProGuard の問題でしょうか?

これにどんなタイトルを付けたらいいのかわからない、とても奇妙です。ARGB 整数形式の色の値を使用するAndroid ロジック パズルを作成しました。レベルを完了したときにアニメーションの色をブレンドするために、次の関数があります。

このコードを使用して、アニメーション中にこの関数を呼び出します (debug print ステートメントを含む)。

ここでposは、0.0 から 1.0 までカウントする単純な double 値です。

Android 開発者プラグインを介して Eclipse 内からこのコードを携帯電話で直接実行すると、すべて正常に動作します。

BUT: アプリをパッケージ化して APK をインストールすると、確実に台無しになり、次のような出力が得られます。

この例では、位置 0.89 までは問題ありません。次に、物事は R コンポーネントだけを機能させることと台無しにすることの間で振動し始め (0 に設定します。失敗するのは常にR コンポーネントです)、最終的に、この例では 0.93 から始まり、物事は常に台無しになります。そして、まったく同じアニメーションをもう一度実行すると、すぐに台無しになり始めます...

これはどのように可能ですか?この ProGuard は私のコードをいじっていますか? その可能性がある場合、確実に調べる方法はありますか?私は本当にここでアイデアを失っています...そして、それが機能するかどうかにかかわらず、どうすれば確率的になるでしょうか? それとも、ここで完全に明らかな何かが欠けているだけですか?

ProGuard の問題である可能性がある場合、どのような最適化がコードのこの部分に影響を与える可能性がありますか? 不安定なものを見つけるために 1 つずつオフにできるスイッチのリストはありますか?

アップデート:

私のproject.propertiesファイルは次のようになります(コメント行は削除されています):

そしてproguard-project.txtこのように:

proguard-android.txtSDK ディレクトリ内の .

更新 2:

ファイル内のblend-method でProGuard が行うことのコンパイル済み出力を見つけたと思います。dump.txt

更新 3 :

私はこれにブレンドメソッドを書き直そうとしました(すべてのコンポーネントを同じように扱うと、もう1つだけを台無しにすることはできないはずです):

当然のことながら、このコードは正常に機能するようになりました。しかし、これでも元のコードが失敗した理由と、アプリの他の場所で、同様に些細なことが予期しない方法で失敗する可能性があることを理解することはできません。

更新 4:

これに行を並べ替えるだけでも問題は解決します。

上記の dump.txt ファイルからそれが明らかでない理由がわかりません... これは Dalvik が行うことですか (ただし、署名された APK に対してのみ!?!)?

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

android-proguard - 最新の mp4parser/isoparser ライブラリの正しい ProGuard 定義は何ですか?

私はあちこちでそれと格闘してきました -

mp4parser ライブラリを機能させるために、プロジェクトのプロガード構成ファイルに追加する必要があるプロガード定義は何ですか?

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

android - Proguard Gradle Duplicate Jars

2 つの異なるモジュールに依存する Android プロジェクトがあります。

両方のモジュールには、同じ 2 つの jar ライブラリが必要です。モジュールの構成は次のようになります。

proguard を使用してメイン プロジェクトをビルドすると、エラーが発生します。

java.io.IOException: 重複する zip エントリ [......クラス]

JAR を 1 回だけインクルードしてエラーを回避する方法はありますか?

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

java - ProGuard が有効な状態で Gradle ビルドが失敗し、classes.jar がありません

ProGuard を有効にして署名付き APK をビルドしようとすると、次のエラーが発生します。

エラー: タスク ':app:packageRelease' の実行に失敗しました。D:\Work\Android\MyApp\app\build\intermediates\classes-proguard\release\classes.jar のハッシュを計算できません

指定されたパスを確認しましたが、classes.jar ファイルはありません。.jar はどこから入手できますか?

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

android - Behavior サブクラス android.support.design.widget.AppBarLayout$ScrollingViewBehavior をインフレートできませんでした

助けてください、アプリに問題があります。実行するとこのエラーが表示されます...助けてください、アプリに問題があります。実行すると次のエラーが表示されます...

ProGuard を設定してみてください。ただし、proguard-rules.pro PROGuard - android.txt かどうかはまだわかりません。これは初めてです。助けてください。

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

android - ProGuard ビルドが「未解決の参照」で失敗する

私は自分のアプリの最新バージョンに取り組んでおり、問題なくテストできますが、リリース ProGuard ビルドを実行すると、多くのエラーが発生します。ほとんどのorg.apache.http.*場合、自分のプロジェクトでは使用していない が見つかりません。プロジェクト全体でそのテキストを検索しましたが、見つかりません。いくつかの依存関係を追加しましたが、HTTP を使用すると思われる依存関係はありません。

ProGuard が不平を言っている理由を突き止め、適切に対処するにはどうすればよいですか? 「--stacktraceオプションで」実行できると書かれていますが、その方法がわかりません。

ProGuard はしばしば混乱を招くので、助けていただければ幸いです。

ビルド出力:

私のGradleファイルから:

私のproguard-rules.proファイル: