Android Studio 集成

注意:

  • 请勿与其他带有崩溃分析的 SDK 同时使用,否则将有可能影响崩溃捕捉功能的正常使用,具体参考这里
  • 关于小米手机悬浮小球等问题,请查看:Android 常见问题

第一步:配置依赖

  • 在项目的 build.gradle(项目根目录的 build.gradle 文件)设置 buildscript dependencies

      buildscript {
          ...
    
          repositories {
                  mavenCentral()//如果 jcenter 很慢,尝试添加 mavenCentral 并调整到首行
                  jcenter()
          }
    
          dependencies {
              ...
              //**重要**
              classpath 'com.bugtags.library:bugtags-gradle:latest.integration'
          }
      }
    
      allprojects {
          repositories {
              mavenCentral()//如果 jcenter 很慢,尝试添加 mavenCentral 并调整到首行
              jcenter()
          }
      }
    
  • 在你的 Android app(com.android.application) 模块的 build.gradle 应用插件和添加依赖:

      android {
    
          useLibrary 'org.apache.http.legacy'
          compileSdkVersion ...
    
          defaultConfig {
              ndk {
                  // 设置支持的 SO 库构架
                  abiFilters 'armeabi'// 'armeabi-v7a', 'arm64-v8a', 'x86', 'x86_64', 'mips', 'mips64'
              }
          }
      }
    
      //应用 Bugtags 插件
      apply plugin: 'com.bugtags.library.plugin'
    
      //Bugtags 插件配置
      bugtags {
          //自动上传符号表功能配置,如果需要根据 build varint 配置,请参考帮助中心->符号表->Android 符号表->配置自动上传符号表
          appKey "APP_KEY"  //这里是你的 appKey
          appSecret "APP_SECRET"    //这里是你的 appSecret,管理员在设置页可以查看
          mappingUploadEnabled true 
    
          //网络跟踪功能配置(企业版)
          trackingNetworkEnabled true
      }
    
      dependencies {
          ...
          compile 'com.bugtags.library:bugtags-lib:latest.integration'
      }
    

    如下图:

    Bugtags-Android-Studio

第二步:添加回调

  • 在你的 Activity 基类(或所有的 Activity)中添加3个回调:

      package your.package.name;
      import android.app.Activity;
      import android.os.Bundle;
      import android.view.MotionEvent;
      import com.bugtags.library.Bugtags;
    
      public class BaseActivity extends Activity{
          @Override
          protected void onResume() {
              super.onResume();
              //注:回调 1
              Bugtags.onResume(this);
          }
    
          @Override
          protected void onPause() {
              super.onPause();
              //注:回调 2
              Bugtags.onPause(this);
          }
    
          @Override
          public boolean dispatchTouchEvent(MotionEvent event) {
              //注:回调 3
              Bugtags.onDispatchTouchEvent(this, event);
              return super.dispatchTouchEvent(event);
          }
      }
    

第三步:启动 SDK

  • 继承 Application,在 onCreate() 方法中初始化 Bugtags:

      public class MyApplication extends Application {
          @Override
          public void onCreate() {
              super.onCreate();
              //在这里初始化
              Bugtags.start("APP_KEY", this, Bugtags.BTGInvocationEventBubble);
          }
      }
    

    关于启动参数和启动模式,请参考文档

  • 修改 AndroidManifest.xml,使用 MyApplication 类,例如:

      <application
          android:name=".MyApplication"
          android:label="@string/app_name"
          android:theme="@style/AppTheme" >
          ....
      </application>
    

    关于如何使用 Android Studio 以及 gradle,请参考 bugtags 博客系列文章

第四步:ProGuard 混淆规则

  • 添加混淆规则

      # ProGuard configurations for Bugtags
      -keepattributes LineNumberTable,SourceFile
    
      -keep class com.bugtags.library.** {*;}
      -dontwarn com.bugtags.library.**
      -keep class io.bugtags.** {*;}
      -dontwarn io.bugtags.**
      -dontwarn org.apache.http.**
      -dontwarn android.net.http.AndroidHttpClient
    
      # End Bugtags
    

编译运行 App,将会在 App 内部看到一个小球,成功了! 看不到悬浮球? 想隐藏悬浮球?

v1.2.7 引入 NDK SO 文件

  • 详细原理,请访问这里

v2.0.0 升级可能出现的问题

  • 解决方案,请访问这里

更多

  • 默认情况下,App 在联机调试(即 true == Debug.isDebuggerConnected()) 状态下,自动上报闪退;可通过设置启动参数 BugtagsOptions -> trackingCrashLog 来实现自定义;
  • 使用启动参数

      BugtagsOptions options = new BugtagsOptions.Builder().
                      trackingLocation(true).//是否获取位置,默认 true
                      trackingCrashLog(true).//是否收集crash,默认 true
                      trackingConsoleLog(true).//是否收集console log,默认 true
                      trackingUserSteps(true).//是否收集用户操作步骤,默认 true
                      trackingNetworkURLFilter("(.*)").//自定义网络请求跟踪的 url 规则,默认 null
                      build();
    
      Bugtags.start("APP_KEY", this, Bugtags.BTGInvocationEventBubble, options);
    
  • SDK 最低兼容 Android 2.3(API 9) 及以上版本;集成有问题请进入 QQ 群:126207501;

  • 以上的配置方式对于 Android Studio 和 Intellij IDEA 是通用的,Bugtags 推荐使用 Android Studio。Let's embrace change!

参考资源

评论