|
@@ -12,9 +12,11 @@ import android.util.Log;
|
|
import com.github.anrwatchdog.ANRError;
|
|
import com.github.anrwatchdog.ANRError;
|
|
import com.github.anrwatchdog.ANRWatchDog;
|
|
import com.github.anrwatchdog.ANRWatchDog;
|
|
import com.wdkl.ncs.android.component.welcome.activity.WelcomeActivity;
|
|
import com.wdkl.ncs.android.component.welcome.activity.WelcomeActivity;
|
|
|
|
+import com.wdkl.ncs.android.middleware.api.UrlManager;
|
|
|
|
|
|
import java.io.File;
|
|
import java.io.File;
|
|
import java.io.FileOutputStream;
|
|
import java.io.FileOutputStream;
|
|
|
|
+import java.io.IOException;
|
|
import java.io.PrintWriter;
|
|
import java.io.PrintWriter;
|
|
import java.io.StringWriter;
|
|
import java.io.StringWriter;
|
|
import java.io.Writer;
|
|
import java.io.Writer;
|
|
@@ -24,6 +26,13 @@ import java.util.HashMap;
|
|
import java.util.Map;
|
|
import java.util.Map;
|
|
import java.util.TimeZone;
|
|
import java.util.TimeZone;
|
|
|
|
|
|
|
|
+import okhttp3.Call;
|
|
|
|
+import okhttp3.Callback;
|
|
|
|
+import okhttp3.FormBody;
|
|
|
|
+import okhttp3.OkHttpClient;
|
|
|
|
+import okhttp3.Request;
|
|
|
|
+import okhttp3.Response;
|
|
|
|
+
|
|
/**
|
|
/**
|
|
* Created by dengzhe on 2018/4/2.
|
|
* Created by dengzhe on 2018/4/2.
|
|
* //=========================FC&ANR异常处理类=========================//
|
|
* //=========================FC&ANR异常处理类=========================//
|
|
@@ -38,6 +47,9 @@ public class AnrFcExceptionUtil implements Thread.UncaughtExceptionHandler {
|
|
|
|
|
|
private static AnrFcExceptionUtil mAnrFcExceptionUtil;
|
|
private static AnrFcExceptionUtil mAnrFcExceptionUtil;
|
|
|
|
|
|
|
|
+ private OkHttpClient okHttpClient;
|
|
|
|
+ private UrlManager urlManager = UrlManager.Companion.build();
|
|
|
|
+
|
|
/**
|
|
/**
|
|
* 存储异常和参数信息
|
|
* 存储异常和参数信息
|
|
*/
|
|
*/
|
|
@@ -143,6 +155,10 @@ public class AnrFcExceptionUtil implements Thread.UncaughtExceptionHandler {
|
|
Log.i(TAG, "saveCrashInfo2File: "+sb.toString());
|
|
Log.i(TAG, "saveCrashInfo2File: "+sb.toString());
|
|
fos.close();
|
|
fos.close();
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+ //上传错误日志
|
|
|
|
+ uploadingErrorLog(application.getPackageName(), "crash", "crash", "", sb.toString());
|
|
|
|
+
|
|
return fileName;
|
|
return fileName;
|
|
} catch (Exception e) {
|
|
} catch (Exception e) {
|
|
Log.e(TAG, "an error occured while writing file...", e);
|
|
Log.e(TAG, "an error occured while writing file...", e);
|
|
@@ -150,6 +166,38 @@ public class AnrFcExceptionUtil implements Thread.UncaughtExceptionHandler {
|
|
return null;
|
|
return null;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ private void uploadingErrorLog(String class_name, String err_msg, String exception_name, String method_name, String stack_trace) {
|
|
|
|
+ if(okHttpClient == null){
|
|
|
|
+ okHttpClient = new OkHttpClient();
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ FormBody.Builder formBody = new FormBody.Builder();
|
|
|
|
+ formBody.add("class_name",class_name);
|
|
|
|
+ formBody.add("method_name",method_name);
|
|
|
|
+ formBody.add("exception_name",exception_name);
|
|
|
|
+ formBody.add("err_msg",err_msg);
|
|
|
|
+ formBody.add("stack_trace",stack_trace);
|
|
|
|
+
|
|
|
|
+ Request request = new Request.Builder()
|
|
|
|
+ .url(urlManager.getBase() + "device/error_log")
|
|
|
|
+ .post(formBody.build())
|
|
|
|
+ .build();
|
|
|
|
+
|
|
|
|
+ okHttpClient.newCall(request).enqueue(new Callback() {
|
|
|
|
+ @Override
|
|
|
|
+ public void onFailure(Call call, IOException e) {
|
|
|
|
+ Log.e(TAG,"错误日志上传失败"+e.getMessage());
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ @Override
|
|
|
|
+ public void onResponse(Call call, Response response) throws IOException {
|
|
|
|
+ Log.d(TAG,"错误日志上传成功");
|
|
|
|
+ String data = response.body().string();
|
|
|
|
+ Log.d(TAG,"错误日志数据 data "+data);
|
|
|
|
+ }
|
|
|
|
+ });
|
|
|
|
+ }
|
|
|
|
+
|
|
private void restartApp() {
|
|
private void restartApp() {
|
|
//重新启动app
|
|
//重新启动app
|
|
Intent mStartActivity = new Intent(application.getApplicationContext(), WelcomeActivity.class);
|
|
Intent mStartActivity = new Intent(application.getApplicationContext(), WelcomeActivity.class);
|