新增bugly

This commit is contained in:
wangcongtao
2020-09-09 14:43:03 +08:00
parent ef677ae4b8
commit e3eed35123
32 changed files with 451 additions and 39 deletions

4
.idea/gradle.xml generated
View File

@@ -67,6 +67,10 @@
<option value="$PROJECT_DIR$/skin/skin-support-cardview" />
<option value="$PROJECT_DIR$/skin/skin-support-constraint-layout" />
<option value="$PROJECT_DIR$/skin/skin-support-design" />
<option value="$PROJECT_DIR$/test" />
<option value="$PROJECT_DIR$/test/crashreport" />
<option value="$PROJECT_DIR$/test/crashreport-bugly" />
<option value="$PROJECT_DIR$/test/crashreport-noop" />
</set>
</option>
<option name="resolveModulePerSourceSet" value="false" />

View File

@@ -348,6 +348,7 @@ dependencies {
apply from: "./functions/gpssimulator.gradle"
apply from: "./functions/leftpanel.gradle"
apply from: "./functions/skin.gradle"
apply from: "./functions/crashreport.gradle"
}
android.applicationVariants.all { variant ->

View File

@@ -0,0 +1,13 @@
// bugly 上报目前仅在debug编译下加载bugly
project.dependencies {
if (Boolean.valueOf(RELEASE)) {
implementation rootProject.ext.dependencies.crashreport
debugImplementation rootProject.ext.dependencies.crashreportbugly
releaseImplementation rootProject.ext.dependencies.crashreportnoop
} else {
implementation project(':test:crashreport')
debugImplementation project(':test:crashreport-bugly')
releaseImplementation project(':test:crashreport-noop')
}
}

View File

@@ -2,47 +2,47 @@ project.dependencies {
if (Boolean.valueOf(RELEASE)) {
bydautoImplementation rootProject.ext.dependencies.skinsupportnoop
d8xxImplementation rootProject.ext.dependencies.skinsupportnoop
d82xImplementation rootProject.ext.dependencies.skinsupportnoop
em1Implementation rootProject.ext.dependencies.skinsupportnoop
d80xImplementation rootProject.ext.dependencies.skinsupportnoop
em3Implementation rootProject.ext.dependencies.skinsupportnoop
f8xxImplementation rootProject.ext.dependencies.skinsupportimpl
f80xImplementation rootProject.ext.dependencies.skinsupportimpl
em4Implementation rootProject.ext.dependencies.skinsupportimpl
e8xxImplementation rootProject.ext.dependencies.skinsupportimpl
d8xxImplementation rootProject.ext.dependencies.skinsupportimpl
d82xImplementation rootProject.ext.dependencies.skinsupportimpl
em1Implementation rootProject.ext.dependencies.skinsupportimpl
d80xImplementation rootProject.ext.dependencies.skinsupportimpl
em3Implementation rootProject.ext.dependencies.skinsupportimpl
f8xxImplementation rootProject.ext.dependencies.skinsupportlight
f80xImplementation rootProject.ext.dependencies.skinsupportlight
em4Implementation rootProject.ext.dependencies.skinsupportlight
e8xxImplementation rootProject.ext.dependencies.skinsupportlight
d8xxImplementation rootProject.ext.dependencies.skinsupportlight
d82xImplementation rootProject.ext.dependencies.skinsupportlight
em1Implementation rootProject.ext.dependencies.skinsupportlight
d80xImplementation rootProject.ext.dependencies.skinsupportlight
em3Implementation rootProject.ext.dependencies.skinsupportlight
// d8xxImplementation rootProject.ext.dependencies.skinsupportlight
// d82xImplementation rootProject.ext.dependencies.skinsupportlight
// em1Implementation rootProject.ext.dependencies.skinsupportlight
// d80xImplementation rootProject.ext.dependencies.skinsupportlight
// em3Implementation rootProject.ext.dependencies.skinsupportlight
} else {
bydautoImplementation project(':skin:mogo-skin-support-noop')
d8xxImplementation project(':skin:mogo-skin-support-noop')
d82xImplementation project(':skin:mogo-skin-support-noop')
em1Implementation project(':skin:mogo-skin-support-noop')
d80xImplementation project(':skin:mogo-skin-support-noop')
em3Implementation project(':skin:mogo-skin-support-noop')
f8xxImplementation project(':skin:mogo-skin-support-impl')
f80xImplementation project(':skin:mogo-skin-support-impl')
em4Implementation project(':skin:mogo-skin-support-impl')
e8xxImplementation project(':skin:mogo-skin-support-impl')
d8xxImplementation project(':skin:mogo-skin-support-impl')
d82xImplementation project(':skin:mogo-skin-support-impl')
em1Implementation project(':skin:mogo-skin-support-impl')
d80xImplementation project(':skin:mogo-skin-support-impl')
em3Implementation project(':skin:mogo-skin-support-impl')
f8xxImplementation project(':skin:mogo-skin-light')
f80xImplementation project(':skin:mogo-skin-light')
em4Implementation project(':skin:mogo-skin-light')
e8xxImplementation project(':skin:mogo-skin-light')
d8xxImplementation project(':skin:mogo-skin-light')
d82xImplementation project(':skin:mogo-skin-light')
em1Implementation project(':skin:mogo-skin-light')
d80xImplementation project(':skin:mogo-skin-light')
em3Implementation project(':skin:mogo-skin-light')
// d8xxImplementation project(':skin:mogo-skin-light')
// d82xImplementation project(':skin:mogo-skin-light')
// em1Implementation project(':skin:mogo-skin-light')
// d80xImplementation project(':skin:mogo-skin-light')
// em3Implementation project(':skin:mogo-skin-light')
}
}

View File

@@ -29,6 +29,7 @@ import com.mogo.module.widgets.MogoWidgetsProvider;
import com.mogo.service.IMogoServiceApis;
import com.mogo.service.MogoServicePaths;
import com.mogo.service.passport.IMogoTicketCallback;
import com.mogo.test.crashreport.ITestCrashReportProvider;
import com.mogo.utils.UiThreadHandler;
import com.mogo.utils.logger.LogLevel;
import com.mogo.utils.logger.Logger;
@@ -100,6 +101,11 @@ public class MogoApplication extends AbsMogoApplication {
}
LeakCanary.install( this );
// debug 下初始化 bugly 上报
if ( DebugConfig.isDebug() ) {
ARouter.getInstance().navigation( ITestCrashReportProvider.class );
}
Log.i( "timer", "cost " + ( System.currentTimeMillis() - start ) + "ms" );
}

View File

@@ -161,7 +161,7 @@ targetSdkVersion : 22,
gpssimulatornoop : "com.mogo.module:module-gps-simulator-noop:${MOGO_MODULE_GPS_SIMULATOR_NOOP_VERSION}",
adasapi : "com.zhidao.autopilot.support:adas:1.0.1",
adasconfigapi : "com.zhidao.adasconfig:adasconfig:1.1.4",
adasconfigapi : "com.zhidao.adasconfig:adasconfig:1.1.5",
// 个人中心的SDK
personalsdk : "com.zhidaoauto.person.info:data:1.0.1",
@@ -205,6 +205,10 @@ targetSdkVersion : 22,
skinsupportimpl : "com.mogo.skin:skin-support-impl:${MOGO_SKIN_SUPPORT_IMPL_VERSION}",
skinsupportnoop : "com.mogo.skin:skin-support-noop:${MOGO_SKIN_SUPPORT_NOOP_VERSION}",
skinsupportlight : "com.mogo.skin:skin-light:${MOGO_SKIN_LIGHT_VERSION}",
crashreport : "com.mogo.test:crashrepot:${CRASHREPORT_VERSION}",
crashreportbugly : "com.mogo.test:crashreport-bugly:${CRASHREPORT_BUGLY_VERSION}",
crashreportnoop : "com.mogo.test:crashreport-noop:${CRASHREPORT_NOOP_VERSION}",
]
}

View File

@@ -114,6 +114,10 @@ LOGLIB_VERSION = 1.0.4
# monitor
MOGO_MODULE_MONITOR_VERSION = 1.0.0-SNAPSHOT
CRASHREPORT_VERSION = 1.0.0
CRASHREPORT_BUGLY_VERSION = 1.0.0
CRASHREPORT_NOOP_VERSION = 1.0.0
## 产品库必备配置产品库自动对versionCode和versionName版本进行升级
applicationId=com.mogo.launcer
applicationName=IntelligentPilot

View File

@@ -27,7 +27,6 @@ import com.amap.api.maps.model.Poi;
import com.amap.api.maps.model.Polyline;
import com.amap.api.maps.model.animation.Animation;
import com.amap.api.maps.model.animation.TranslateAnimation;
import com.amap.api.navi.AMapNaviViewOptions;
import com.amap.api.navi.model.NaviInfo;
import com.mogo.commons.debug.DebugConfig;
import com.mogo.map.IMogoMap;
@@ -70,8 +69,6 @@ public class AMapViewWrapper implements IMogoMapView,
AMap.OnCameraChangeListener,
AMap.OnMyLocationChangeListener {
private static boolean sIsCreated = false;
private static final String TAG = "AMapViewWrapper";
private final MapView mMapView;
@@ -183,6 +180,7 @@ public class AMapViewWrapper implements IMogoMapView,
aMap.setOnCameraChangeListener( this );
aMap.setOnMyLocationChangeListener( this );
}
AMapMessageManager.getInstance().clear();
AMapMessageManager.getInstance().registerAMapMessageListener( this );
}
@@ -202,13 +200,6 @@ public class AMapViewWrapper implements IMogoMapView,
@Override
public void onCreate( Bundle bundle ) {
if ( sIsCreated ) {
initMapView();
initListeners();
initMyLocation();
return;
}
sIsCreated = true;
if ( mMapView != null ) {
mMapView.onCreate( bundle );
Logger.d( TAG, "map onCreate" );
@@ -222,6 +213,7 @@ public class AMapViewWrapper implements IMogoMapView,
public void onResume() {
if ( mMapView != null ) {
mMapView.onResume();
Logger.d( TAG, Log.getStackTraceString( new Throwable() ) );
Logger.d( TAG, "map onResume" );
}
}
@@ -236,7 +228,6 @@ public class AMapViewWrapper implements IMogoMapView,
@Override
public void onDestroy() {
sIsCreated = false;
if ( mMapView != null ) {
mMapView.onDestroy();
Logger.d( TAG, "map onDestroy" );
@@ -390,7 +381,7 @@ public class AMapViewWrapper implements IMogoMapView,
}
private boolean checkMapView() {
if ( mMapView == null ) {
if ( mMapView == null || mMapView.getMap() == null ) {
Logger.e( TAG, "高德mapView实例为空请检查" );
return false;
}
@@ -425,7 +416,7 @@ public class AMapViewWrapper implements IMogoMapView,
Logger.d( TAG, Log.getStackTraceString( new Throwable() ) );
}
if ( checkMapView() ) {
MyLocationStyle style = mMapView.getMap().getMyLocationStyle();
MyLocationStyle style = getMyLocationStyle();
if ( style == null ) {
style = new MyLocationStyle();
}
@@ -447,7 +438,7 @@ public class AMapViewWrapper implements IMogoMapView,
Logger.d( TAG, Log.getStackTraceString( new Throwable() ) );
}
if ( checkMapView() ) {
MyLocationStyle style = mMapView.getMap().getMyLocationStyle();
MyLocationStyle style = getMyLocationStyle();
if ( style == null ) {
style = new MyLocationStyle();
}
@@ -460,7 +451,7 @@ public class AMapViewWrapper implements IMogoMapView,
public void initMyLocation() {
if ( checkMapView() ) {
mMapView.getMap().setMyLocationEnabled( true );
MyLocationStyle style = mMapView.getMap().getMyLocationStyle();
MyLocationStyle style = getMyLocationStyle();
style.myLocationType( MyLocationStyle.LOCATION_TYPE_LOCATION_ROTATE_NO_CENTER );
style.interval( 1000 );
style.anchor( 0.5F, 0.5F );
@@ -471,6 +462,14 @@ public class AMapViewWrapper implements IMogoMapView,
}
}
private MyLocationStyle getMyLocationStyle() {
try {
return mMapView.getMap().getMyLocationStyle();
} catch ( Exception e ) {
return new MyLocationStyle();
}
}
@Override
public void recoverLockMode() {
if ( checkMapView() ) {
@@ -478,7 +477,10 @@ public class AMapViewWrapper implements IMogoMapView,
Logger.d( TAG, Log.getStackTraceString( new Throwable() ) );
}
Logger.d( TAG, "锁车" );
MyLocationStyle style = mMapView.getMap().getMyLocationStyle();
MyLocationStyle style = getMyLocationStyle();
if ( style == null ) {
style = new MyLocationStyle();
}
style.myLocationType( MyLocationStyle.LOCATION_TYPE_FOLLOW );
mMapView.getMap().setMyLocationStyle( style );
mIsCarLocked = true;
@@ -491,7 +493,7 @@ public class AMapViewWrapper implements IMogoMapView,
Logger.d( TAG, Log.getStackTraceString( new Throwable() ) );
}
Logger.d( TAG, "解锁锁车" );
MyLocationStyle style = mMapView.getMap().getMyLocationStyle();
MyLocationStyle style = getMyLocationStyle();
style.myLocationType( MyLocationStyle.LOCATION_TYPE_FOLLOW_NO_CENTER );
mMapView.getMap().setMyLocationStyle( style );
mIsCarLocked = false;

View File

@@ -185,7 +185,7 @@ public class MogoModulesManager implements MogoModulesHandler {
return;
}
mActivity.getSupportFragmentManager().beginTransaction()
.add( containerId, fragment, provider.getModuleName() )
.replace( containerId, fragment, provider.getModuleName() )
.commitAllowingStateLoss();
}
}

View File

@@ -1,3 +1,6 @@
include ':test:crashreport'
include ':test:crashreport-bugly'
include ':test:crashreport-noop'
include ':skin:skin-support'
include ':skin:skin-support-appcompat'
include ':skin:skin-support-cardview'
@@ -54,3 +57,4 @@ include ':modules:mogo-module-guide'
include ':modules:mogo-module-tanlu'
include ':libraries:tanlulib'
include ':skin'
include ':test'

1
test/crashreport-bugly/.gitignore vendored Normal file
View File

@@ -0,0 +1 @@
/build

View File

@@ -0,0 +1,58 @@
apply plugin: 'com.android.library'
apply plugin: 'com.alibaba.arouter'
android {
compileSdkVersion rootProject.ext.android.compileSdkVersion
// buildToolsVersion rootProject.ext.android.buildToolsVersion
defaultConfig {
minSdkVersion rootProject.ext.android.minSdkVersion
targetSdkVersion rootProject.ext.android.targetSdkVersion
versionCode Integer.valueOf(VERSION_CODE)
versionName getValueFromRootProperties("${project.name.replace("-", "_").toUpperCase()}_VERSION")
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
consumerProguardFiles "consumer-rules.pro"
ndk {
// 设置支持的SO库架构
abiFilters 'armeabi' //, 'x86', 'armeabi-v7a', 'x86_64', 'arm64-v8a'
}
javaCompileOptions {
annotationProcessorOptions {
arguments = [AROUTER_MODULE_NAME: project.getName()]
}
}
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
implementation fileTree(dir: "libs", include: ["*.jar"])
implementation rootProject.ext.dependencies.androidxappcompat
implementation rootProject.ext.dependencies.arouter
annotationProcessor rootProject.ext.dependencies.aroutercompiler
if (Boolean.valueOf(RELEASE)) {
implementation rootProject.ext.dependencies.crashreport
implementation rootProject.ext.dependencies.mogoutils
implementation rootProject.ext.dependencies.mogocommons
} else {
implementation project(":test:crashreport")
implementation project(":foudations:mogo-utils")
implementation project(":foudations:mogo-commons")
}
implementation 'com.tencent.bugly:crashreport:latest.release'
//其中latest.release指代最新Bugly SDK版本号也可以指定明确的版本号例如2.1.9
implementation 'com.tencent.bugly:nativecrashreport:latest.release'
//其中latest.release指代最新Bugly NDK版本号也可以指定明确的版本号例如3.0
}
apply from: new File(rootProject.rootDir, "gradle/upload.gradle").toString()

View File

@@ -0,0 +1,3 @@
GROUP=com.mogo.test
POM_ARTIFACT_ID=crashreport-bugly
VERSION_CODE=1

View File

@@ -0,0 +1,21 @@
# Add project specific ProGuard rules here.
# You can control the set of applied configuration files using the
# proguardFiles setting in build.gradle.
#
# For more details, see
# http://developer.android.com/guide/developing/tools/proguard.html
# If your project uses WebView with JS, uncomment the following
# and specify the fully qualified class name to the JavaScript interface
# class:
#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
# public *;
#}
# Uncomment this to preserve the line number information for
# debugging stack traces.
#-keepattributes SourceFile,LineNumberTable
# If you keep the line number information, uncomment this to
# hide the original source file name.
#-renamesourcefileattribute SourceFile

View File

@@ -0,0 +1,5 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.mogo.test.crashreport.bugly">
/
</manifest>

View File

@@ -0,0 +1,67 @@
package com.mogo.test.crashreport.bugly;
import android.content.Context;
import android.text.TextUtils;
import com.alibaba.android.arouter.facade.annotation.Route;
import com.mogo.test.crashreport.CrashReportConstants;
import com.mogo.test.crashreport.ITestCrashReportProvider;
import com.mogo.utils.logger.Logger;
import com.tencent.bugly.crashreport.CrashReport;
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
public
/**
* @author congtaowang
* @since 2020/9/9
*
* 描述
*/
@Route( path = CrashReportConstants.PATH )
class BuglyCrashReportProvider implements ITestCrashReportProvider {
private static final String TAG = "BuglyCrashReportProvider";
@Override
public void init( Context context ) {
Logger.d(TAG, "init");
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 ) );
CrashReport.initCrashReport( context, "f3f8b0b2f1", true, strategy );
}
/**
* 获取进程号对应的进程名
*
* @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;
}
}

1
test/crashreport-noop/.gitignore vendored Normal file
View File

@@ -0,0 +1 @@
/build

View File

@@ -0,0 +1,58 @@
apply plugin: 'com.android.library'
apply plugin: 'com.alibaba.arouter'
android {
compileSdkVersion rootProject.ext.android.compileSdkVersion
// buildToolsVersion rootProject.ext.android.buildToolsVersion
defaultConfig {
minSdkVersion rootProject.ext.android.minSdkVersion
targetSdkVersion rootProject.ext.android.targetSdkVersion
versionCode Integer.valueOf(VERSION_CODE)
versionName getValueFromRootProperties("${project.name.replace("-", "_").toUpperCase()}_VERSION")
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
consumerProguardFiles "consumer-rules.pro"
ndk {
// 设置支持的SO库架构
abiFilters 'armeabi' //, 'x86', 'armeabi-v7a', 'x86_64', 'arm64-v8a'
}
javaCompileOptions {
annotationProcessorOptions {
arguments = [AROUTER_MODULE_NAME: project.getName()]
}
}
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
implementation fileTree(dir: "libs", include: ["*.jar"])
implementation rootProject.ext.dependencies.androidxappcompat
implementation rootProject.ext.dependencies.arouter
annotationProcessor rootProject.ext.dependencies.aroutercompiler
if (Boolean.valueOf(RELEASE)) {
implementation rootProject.ext.dependencies.crashreport
implementation rootProject.ext.dependencies.mogoutils
implementation rootProject.ext.dependencies.mogocommons
} else {
implementation project(":test:crashreport")
implementation project(":foudations:mogo-utils")
implementation project(":foudations:mogo-commons")
}
implementation 'com.tencent.bugly:crashreport:latest.release'
//其中latest.release指代最新Bugly SDK版本号也可以指定明确的版本号例如2.1.9
implementation 'com.tencent.bugly:nativecrashreport:latest.release'
//其中latest.release指代最新Bugly NDK版本号也可以指定明确的版本号例如3.0
}
apply from: new File(rootProject.rootDir, "gradle/upload.gradle").toString()

View File

View File

@@ -0,0 +1,3 @@
GROUP=com.mogo.test
POM_ARTIFACT_ID=crashreport-noop
VERSION_CODE=1

View File

@@ -0,0 +1,21 @@
# Add project specific ProGuard rules here.
# You can control the set of applied configuration files using the
# proguardFiles setting in build.gradle.
#
# For more details, see
# http://developer.android.com/guide/developing/tools/proguard.html
# If your project uses WebView with JS, uncomment the following
# and specify the fully qualified class name to the JavaScript interface
# class:
#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
# public *;
#}
# Uncomment this to preserve the line number information for
# debugging stack traces.
#-keepattributes SourceFile,LineNumberTable
# If you keep the line number information, uncomment this to
# hide the original source file name.
#-renamesourcefileattribute SourceFile

View File

@@ -0,0 +1,5 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.mogo.test.crashreport.noop">
/
</manifest>

View File

@@ -0,0 +1,26 @@
package com.mogo.test.crashreport.noop;
import android.content.Context;
import com.alibaba.android.arouter.facade.annotation.Route;
import com.mogo.test.crashreport.CrashReportConstants;
import com.mogo.test.crashreport.ITestCrashReportProvider;
import com.mogo.utils.logger.Logger;
public
/**
* @author congtaowang
* @since 2020/9/9
*
* 描述
*/
@Route( path = CrashReportConstants.PATH )
class NoopCrashReportProvider implements ITestCrashReportProvider {
private static final String TAG = "NoopCrashReportProvider";
@Override
public void init( Context context ) {
Logger.d(TAG, "init");
}
}

1
test/crashreport/.gitignore vendored Normal file
View File

@@ -0,0 +1 @@
/build

View File

@@ -0,0 +1,46 @@
apply plugin: 'com.android.library'
apply plugin: 'com.alibaba.arouter'
android {
compileSdkVersion rootProject.ext.android.compileSdkVersion
// buildToolsVersion rootProject.ext.android.buildToolsVersion
defaultConfig {
minSdkVersion rootProject.ext.android.minSdkVersion
targetSdkVersion rootProject.ext.android.targetSdkVersion
versionCode Integer.valueOf(VERSION_CODE)
versionName getValueFromRootProperties("${project.name.replace("-", "_").toUpperCase()}_VERSION")
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
consumerProguardFiles "consumer-rules.pro"
javaCompileOptions {
annotationProcessorOptions {
arguments = [AROUTER_MODULE_NAME: project.getName()]
}
}
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
implementation fileTree(dir: "libs", include: ["*.jar"])
implementation rootProject.ext.dependencies.androidxappcompat
implementation rootProject.ext.dependencies.arouter
annotationProcessor rootProject.ext.dependencies.aroutercompiler
if (Boolean.valueOf(RELEASE)) {
implementation rootProject.ext.dependencies.mogoutils
implementation rootProject.ext.dependencies.mogocommons
} else {
implementation project(":foudations:mogo-utils")
implementation project(":foudations:mogo-commons")
}
}
apply from: new File(rootProject.rootDir, "gradle/upload.gradle").toString()

View File

View File

@@ -0,0 +1,3 @@
GROUP=com.mogo.test
POM_ARTIFACT_ID=crashreport
VERSION_CODE=1

21
test/crashreport/proguard-rules.pro vendored Normal file
View File

@@ -0,0 +1,21 @@
# Add project specific ProGuard rules here.
# You can control the set of applied configuration files using the
# proguardFiles setting in build.gradle.
#
# For more details, see
# http://developer.android.com/guide/developing/tools/proguard.html
# If your project uses WebView with JS, uncomment the following
# and specify the fully qualified class name to the JavaScript interface
# class:
#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
# public *;
#}
# Uncomment this to preserve the line number information for
# debugging stack traces.
#-keepattributes SourceFile,LineNumberTable
# If you keep the line number information, uncomment this to
# hide the original source file name.
#-renamesourcefileattribute SourceFile

View File

@@ -0,0 +1,5 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.mogo.test.crashreport">
/
</manifest>

View File

@@ -0,0 +1,15 @@
package com.mogo.test.crashreport;
public
/**
* @author congtaowang
* @since 2020/9/9
* <p>
* 描述
*/
class CrashReportConstants {
public static final String PATH = "/crashreport/api";
public static final String NAME = "CrashReportApi";
}

View File

@@ -0,0 +1,14 @@
package com.mogo.test.crashreport;
import com.alibaba.android.arouter.facade.template.IProvider;
public
/**
* @author congtaowang
* @since 2020/9/9
*
* 描述
*/
interface ITestCrashReportProvider extends IProvider {
}