Google PlayデベロッパーコンソールでProguardを有効にしていて(minifyenabled true)、最近クラッシュレポートを取得しました。私はそれを見たとき、私は 次のことを見た:Stacktraceでクラスとメソッドの名前を表示しているGoogle Playデベロッパーコンソール
ProGuardのが有効になっているように私は、1行目では完全なクラスやメソッドの名前を見て驚きました。 com.myname.myapp.cfで
(不明なソース)
私も私はありませんとして、行番号が表示されているか興味:私はいつも以前にこのようなものを見てきました私のProguard設定ファイルに行番号を保存しています(なぜ、私は通常、スタックトレースに 'Unknown Source'が表示されるのですか)。
私は.apkを逆コンパイルし、classes.dexファイルを閲覧しました。 stacktraceの1行目で参照されているクラスが見つかったので、メソッド名と同様に、クラス名は確かに難読化されていました。
今、 'MyActivity'(スタックトレースの2行目)は、アプリケーションの起動アクティビティです。マニフェストで宣言されているので、名前がわかりにくく、 'onConnected'メソッドが私の方法ではありません(Google Playゲームサービスからのものです)、これもまた問題ありません。がそうのようonConnected内
'MyMethodNameは' から呼び出されます。
@Override
public void onConnected(Bundle arg0) {
myClassObject.myMethodName(); //Where myClassObject is an instance of MyClassName
}
デバッグは、私のbuild.gradleファイルで無効に設定されています。
mapping.txtファイルをPlay Consoleにアップロードしません。手動でリトレースを実行して、難読化されていないスタックトレースを表示します。
ここでフルクラスとメソッド名が表示されている理由を誰かが理解できたら助かりますか?これを防ぐにはどうすればよいですか?
'MyClassName'は' Activity'クラスですか?デフォルトの 'ProGuard'ルールを使用していますか? –