Skip to content

Commit ef51c87

Browse files
committed
see 10/12 log
1 parent 4f8fa0e commit ef51c87

File tree

1 file changed

+29
-25
lines changed

1 file changed

+29
-25
lines changed

utilcode/src/main/java/com/blankj/utilcode/utils/CrashUtils.java

+29-25
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
import java.io.StringWriter;
1212
import java.io.Writer;
1313
import java.lang.Thread.UncaughtExceptionHandler;
14+
import java.lang.ref.WeakReference;
1415

1516
/**
1617
* <pre>
@@ -23,16 +24,18 @@
2324
public class CrashUtils implements Thread.UncaughtExceptionHandler {
2425

2526
private volatile static CrashUtils mInstance;
26-
private Context mContext;
2727
private UncaughtExceptionHandler mHandler;
2828
private boolean mInitialized;
29+
private static String dir;
30+
private String versionName;
31+
private int versionCode;
2932

3033
private CrashUtils() {
3134
}
3235

3336
/**
3437
* 获取单例
35-
* <p>在Application中初始化{@code CrashUtils.getInstance().getBuilder(this);}</p>
38+
* <p>在Application中初始化{@code CrashUtils.getInstance().init(this);}</p>
3639
*
3740
* @return 单例
3841
*/
@@ -50,22 +53,28 @@ public static CrashUtils getInstance() {
5053
*
5154
* @param context 上下文
5255
*/
53-
public void init(Context context) {
54-
if (mInitialized) return;
55-
mInitialized = true;
56-
mContext = context;
56+
public boolean init(Context context) {
57+
if (mInitialized) return true;
58+
if (Environment.MEDIA_MOUNTED.equals(Environment.getExternalStorageState())) {
59+
dir = context.getExternalCacheDir().getPath();
60+
} else {
61+
dir = context.getCacheDir().getPath();
62+
}
63+
try {
64+
PackageInfo pi = context.getPackageManager().getPackageInfo(context.getPackageName(), 0);
65+
versionName = pi.versionName;
66+
versionCode = pi.versionCode;
67+
} catch (PackageManager.NameNotFoundException e) {
68+
e.printStackTrace();
69+
return false;
70+
}
5771
mHandler = Thread.getDefaultUncaughtExceptionHandler();
5872
Thread.setDefaultUncaughtExceptionHandler(this);
73+
return mInitialized = true;
5974
}
6075

6176
@Override
6277
public void uncaughtException(Thread thread, Throwable throwable) {
63-
String dir;
64-
if (Environment.MEDIA_MOUNTED.equals(Environment.getExternalStorageState())) {
65-
dir = mContext.getExternalCacheDir().getPath();
66-
} else {
67-
dir = mContext.getCacheDir().getPath();
68-
}
6978
String fullPath = dir + File.separator + "crash_" + TimeUtils.getCurTimeString() + ".txt";
7079
if (!FileUtils.createOrExistsFile(fullPath)) return;
7180
StringBuilder sb = new StringBuilder();
@@ -97,19 +106,14 @@ public void uncaughtException(Thread thread, Throwable throwable) {
97106
*/
98107
private StringBuilder getCrashHead() {
99108
StringBuilder sb = new StringBuilder();
100-
try {
101-
PackageInfo pi = mContext.getPackageManager().getPackageInfo(mContext.getPackageName(), 0);
102-
sb.append("\n************* Crash Log Head ****************");
103-
sb.append("\nDevice Manufacturer: ").append(Build.MANUFACTURER);// 设备厂商
104-
sb.append("\nDevice Model : ").append(Build.MODEL);// 设备型号
105-
sb.append("\nAndroid Version : ").append(Build.VERSION.RELEASE);// 系统版本
106-
sb.append("\nAndroid SDK : ").append(Build.VERSION.SDK_INT);// SDK版本
107-
sb.append("\nApp VersionName : ").append(pi.versionName);
108-
sb.append("\nApp VersionCode : ").append(pi.versionCode);
109-
sb.append("\n************* Crash Log Head ****************\n\n");
110-
} catch (PackageManager.NameNotFoundException e) {
111-
e.printStackTrace();
112-
}
109+
sb.append("\n************* Crash Log Head ****************");
110+
sb.append("\nDevice Manufacturer: ").append(Build.MANUFACTURER);// 设备厂商
111+
sb.append("\nDevice Model : ").append(Build.MODEL);// 设备型号
112+
sb.append("\nAndroid Version : ").append(Build.VERSION.RELEASE);// 系统版本
113+
sb.append("\nAndroid SDK : ").append(Build.VERSION.SDK_INT);// SDK版本
114+
sb.append("\nApp VersionName : ").append(versionName);
115+
sb.append("\nApp VersionCode : ").append(versionCode);
116+
sb.append("\n************* Crash Log Head ****************\n\n");
113117
return sb;
114118
}
115119
}

0 commit comments

Comments
 (0)