报错上传到bugly进行统计

来源:互联网 发布:命运 定数 知乎 编辑:程序博客网 时间:2024/06/08 07:00

https://bugly.qq.com/docs/user-guide/instruction-manual-android/?v=20170912151050


集成SDK

在Module的build.gradle文件中添加依赖和属性配置:

dependencies {    compile 'com.tencent.bugly:crashreport:latest.release' //其中latest.release指代最新Bugly SDK版本号,也可以指定明确的版本号,例如2.2.0}

同时集成SDK和NDK

在Module的build.gradle文件中添加依赖和属性配置:

android {    defaultConfig {        ndk {            // 设置支持的SO库架构            abiFilters 'armeabi' //, 'x86', 'armeabi-v7a', 'x86_64', 'arm64-v8a'        }    }}dependencies {    compile 'com.tencent.bugly:crashreport:latest.release' //其中latest.release指代最新Bugly SDK版本号,也可以指定明确的版本号,例如2.1.9    compile 'com.tencent.bugly:nativecrashreport:latest.release' //其中latest.release指代最新Bugly NDK版本号,也可以指定明确的版本号,例如3.0}

参数配置

  • 在AndroidManifest.xml中添加权限:
<uses-permission android:name="android.permission.READ_PHONE_STATE" /><uses-permission android:name="android.permission.INTERNET" /><uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /><uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /><uses-permission android:name="android.permission.READ_LOGS" />
  • 请避免混淆Bugly,在Proguard混淆文件中增加以下配置:
-dontwarn com.tencent.bugly.**-keep public class com.tencent.bugly.**{*;}
 

此外,Bugly2.0及以上版本还支持通过“AndroidManifest.xml”来配置APP信息。如果同时又通过代码中配置了APP信息,则最终以代码配置的信息为准。

在“AndroidManifest.xml”的“Application”中增加“meta-data”配置项:

<application    <!-- 配置APP ID -->    <meta-data            android:name="BUGLY_APPID"            android:value="<APP_ID>" />    <!-- 配置APP版本号 -->    <meta-data            android:name="BUGLY_APP_VERSION"            android:value="<APP_Version>" />    <!-- 配置APP渠道号 -->    <meta-data            android:name="BUGLY_APP_CHANNEL"            android:value="<APP_Channel>" />    <!-- 配置Bugly调试模式(true或者false)-->    <meta-data            android:name="BUGLY_ENABLE_DEBUG"            android:value="<isDebug>" /></application>

自己写一个类继承application

在清单文件中配置name

<application    android:name=".MyApp"
</application>

public class MyApp extends Application{    @Override    public void onCreate() {        super.onCreate();        Context context = getApplicationContext();// 获取当前包名        String packageName = context.getPackageName();// 获取当前进程名        String processName = getProcessName(android.os.Process.myPid());// 设置是否为上报进程        CrashReport.UserStrategy strategy = new CrashReport.UserStrategy(context);        strategy.setUploadProcess(processName == null || processName.equals(packageName));// 初始化Bugly        CrashReport.initCrashReport(context, "e109cae3b0", true, strategy);// 如果通过“AndroidManifest.xml”来配置APP信息,初始化方法如下// CrashReport.initCrashReport(context, strategy);        CrashReport.testJavaCrash();    }    /**     * 获取进程号对应的进程名     *     * @param pid 进程号     * @return 进程名     */    private static String getProcessName(int pid) {        BufferedReader reader = null;        try {            reader = new BufferedReader(new FileReader("/proc/" + pid + "/cmdline"));            String processName = reader.readLine();            if (!TextUtils.isEmpty(processName)) {                processName = processName.trim();            }            return processName;        } catch (Throwable throwable) {            throwable.printStackTrace();        } finally {            try {                if (reader != null) {                    reader.close();                }            } catch (IOException exception) {                exception.printStackTrace();            }        }        return null;    }}

原创粉丝点击