Android 崩溃可在手机端显示日志 SpiderMan

功能介绍:

 

  • 在Android手机上显示闪退崩溃信息
  • 解决软件闪退崩溃,但是又不能场景重现的无奈
  • 避免部分国产Rom禁止异常log输出

Android 崩溃可在手机端显示日志 SpiderMan_第1张图片                                   Android 崩溃可在手机端显示日志 SpiderMan_第2张图片

引入依赖

1.1.4版本开始全面迁移到androidx,如不想迁移到androidx请继续使用1.1.3版本。
 

def spider_man = "1.1.5"
def spider_man_no_op = "1.1.4"

方式一

debugImplementation "com.simple:spiderman:$spider_man"
releaseImplementation "com.simple:spiderman-no-op:$spider_man_no_op"

方式二

implementation "com.simple:spiderman:$spider_man"

 上面方式一debug环境有奔溃信息提示,release环境则没有,方式二都有,但是记得添加混淆。
 

初始化

放到Application的onCreate()初始化中,因为static了传入的context,并且放在其他Library初始化的前面。

public class App extends Application {

    @Override
    public void onCreate() {
        super.onCreate();
        //放在其他库初始化前
        SpiderMan.init(this);
    }
}

直接显示错误页面

调用SpiderMan.show(Throwable e)方法

try {
      String text = null;
      text.toUpperCase();
    } catch (Exception e) {
      SpiderMan.show(e);
}

 

冲突

androidx

项目已经依赖了androidx.appcompat:appcompat包,如果产生冲突请使用下面的方式依赖。

debugImplementation("com.simple:spiderman:$spider_man") {
        exclude group: "androidx.appcompat"
    }
    releaseImplementation("com.simple:spiderman-no-op:$spider_man") {
        exclude group: "androidx.appcompat"
    }

support

项目已经依赖了com.android.support:appcompat-v7包,如果产生冲突请使用下面的方式依赖。

debugImplementation("com.simple:spiderman:$spider_man") {
    exclude group: "com.android.support"
}

releaseImplementation("com.simple:spiderman-no-op:$spider_man") {
    exclude group: "com.android.support"
}

混淆

-keep class com.simple.spiderman.** { *; }
-keepnames class com.simple.spiderman.** { *; }
-keep public class * extends android.app.Activity
-keep class * implements Android.os.Parcelable {
    public static final Android.os.Parcelable$Creator *;
}
# support
-keep public class * extends android.support.annotation.** { *; }
-keep public class * extends android.support.v4.content.FileProvider
# androidx
-keep public class * extends androidx.annotation.** { *; }
-keep public class * extends androidx.core.content.FileProvider

 

自定义界面样式

SpiderMan.init(this)
         .setTheme(R.style.SpiderManTheme_Dark);

SpiderMan内置了两种主题样式lightdark

 

light dark custom

Android 崩溃可在手机端显示日志 SpiderMan_第3张图片

Android 崩溃可在手机端显示日志 SpiderMan_第4张图片

Android 崩溃可在手机端显示日志 SpiderMan_第5张图片

 

所有自定义属性定义在attrs.xml

  • smToolbar:toolbar的背景色
  • smToolbarText:toolb title的颜色
  • smToolbarShareText:分享文字按钮的颜色
  • smContentBackground:toolb下方内容的背景色
  • smIdentText:标签名字的颜色
  • smDescText:标签描述的颜色

项目地址:https://github.com/simplepeng/SpiderMan

 

你可能感兴趣的:(Android)