0
EclipseでAndroidスライドショーを再生することをデバッグしています。メモリリークの原因を見つけるためにヒープダンプを生成しようとしていますが、テスト中の "/ data/data/app folder /"フォルダ内にhprofファイルは生成されません。ファイルを生成するための私のコードは次のとおりです。それのどこが悪いんだい?前もって感謝します!hprofファイルがAndroidアプリケーションによって生成されていません
public class HeapDumpingUncaughtExceptionHandler implements Thread.UncaughtExceptionHandler {
private static final String HPROF_DUMP_BASENAME = "leak-app-";
private final String dataDir;
public HeapDumpingUncaughtExceptionHandler(String dataDir) {
this.dataDir = dataDir;
Date d = new Date();
CharSequence s = DateFormat.format("yyyy-MM-dd_HH-mm-ss", d.getTime());
String absPath = new File(dataDir, HPROF_DUMP_BASENAME +s+".hprof").getAbsolutePath();
try {
Log.d(this.getClass().toString(),"memory leak app handler: initial heap dump created "+ absPath);
Debug.dumpHprofData(absPath);
} catch (IOException e) {
e.printStackTrace();
}
}
@Override
public void uncaughtException(Thread thread, Throwable ex) {
Date d = new Date();
CharSequence s = DateFormat.format("yyyy-MM-dd_HH-mm-ss", d.getTime());
String absPath = new File(dataDir, HPROF_DUMP_BASENAME+s+".hprof").getAbsolutePath();
Log.d(this.getClass().toString(),"memory leak app handler: exception caught : "+ex.getClass()+ " heap dump path "+absPath);
try {
Debug.dumpHprofData(absPath);
} catch (IOException e) {
e.printStackTrace();
}
ex.printStackTrace();
}
}
https://github.com/square/leakcanaryを試して、メモリリークの特定に役立ててください。ライブラリが生成されると、ライブラリはhprofファイルを作成しますが、何かが流出したときに問題を見つけることができます。あなたは、ここで行われたようなカスタム拡張アプリケーションクラスでUncaughtHandlerを追加する必要がありますhttp://stackoverflow.com/a/8943671/2910520 – MatPag
ありがとうございます。でも、私はそれをEclipseでインストールする方法を知ることはできません。日食のためのチュートリアルはほとんどありません。 – Anndexi9
Android Studioに切り替えることをお勧めします。多くの新しいチュートリアルはASに基づいています...それは確かに価値があります。 – MatPag