Tencent / matrix

Matrix is a plugin style, non-invasive APM system developed by WeChat.
Other
11.57k stars 1.87k forks source link

Matrix 升级到androidx之后开启混淆打出来的apk size变小了 dex出现丢失 #686

Open Avengong opened 2 years ago

Avengong commented 2 years ago

Issue /提问须知

在提交 issue 之前,我们应该先查询是否已经有相关的 issue 以及常见问题。提交 issue 时,我们需要写明 issue 的原因,以及编译或运行过程的日志。issue 需要以下面的格式:

异常类型:开启混淆后,打出的apk包缺少dex文件

手机型号:无

手机系统版本:无

matrix版本: 2.0.2

gradle版本:4.1.0

问题描述:不开混淆没有问题。开启混淆后,部分dex文件缺失了,导致apk包小了近一半,无法运行。

堆栈/日志:
1. 如是编译异常,请在执行 gradle 命令时,加上 --stacktrace;
2. 日志我们需要过滤" Matrix. "关键字;

打包流程没问题,不确定你们需要哪些日志??
scuzoutao commented 2 years ago

+1

Andyload commented 2 years ago

@Avengong 可以安装不能运行?

Avengong commented 2 years ago

是的,我demo的apk有部分dex,可以安装无法运行。项目打出的正式包没有dex,无法安装。

scuzoutao commented 2 years ago

,我demo的apk有部分dex,可以安装无法运行。项目打出的正式包没有dex,无法安

我的是debug正常,但是release就没有dex

Andyload commented 2 years ago

我测试了一下是因为关闭了R8和开了混淆引起,看看工程是不是关闭了R8?

scuzoutao commented 2 years ago

测试了一下是因为关闭了R8和开了混淆引起,看看工程是不是关闭了R

官方demo打开了R8,编译出来的apk可以安装,但是也打不开。 E: ----- class 'Lcom/tencent/matrix/trace/tracer/SignalAnrTracer;' cl=0x12c55ab0 ----- E: super='java.lang.Class' (cl=0x12c55ab0) E: 0: void com.tencent.matrix.trace.tracer.SignalAnrTracer.h() E: 1: void com.tencent.matrix.trace.tracer.SignalAnrTracer.j() E: 0: void com.tencent.matrix.trace.tracer.SignalAnrTracer.() E: 1: void com.tencent.matrix.trace.tracer.SignalAnrTracer.(b.c.a.m.d.c) E: 2: void com.tencent.matrix.trace.tracer.SignalAnrTracer.l() E: 3: boolean com.tencent.matrix.trace.tracer.SignalAnrTracer.m() E: 4: void com.tencent.matrix.trace.tracer.SignalAnrTracer.n() E: 5: void com.tencent.matrix.trace.tracer.SignalAnrTracer.o(java.lang.String, java.lang.String) E: 6: void com.tencent.matrix.trace.tracer.SignalAnrTracer.onANRDumpTrace() E: 7: void com.tencent.matrix.trace.tracer.SignalAnrTracer.onANRDumped() E: 8: void com.tencent.matrix.trace.tracer.SignalAnrTracer.onPrintTrace() E: 9: void com.tencent.matrix.trace.tracer.SignalAnrTracer.p() E: 10: void com.tencent.matrix.trace.tracer.SignalAnrTracer.q() E: 11: void com.tencent.matrix.trace.tracer.SignalAnrTracer.r(boolean) E: 0: boolean com.tencent.matrix.trace.tracer.SignalAnrTracer.d E: 1: java.lang.String com.tencent.matrix.trace.tracer.SignalAnrTracer.e E: 2: java.lang.String com.tencent.matrix.trace.tracer.SignalAnrTracer.f E: 3: boolean com.tencent.matrix.trace.tracer.SignalAnrTracer.g E: 4: boolean com.tencent.matrix.trace.tracer.SignalAnrTracer.h E: 5: long com.tencent.matrix.trace.tracer.SignalAnrTracer.i E: 6: java.lang.String com.tencent.matrix.trace.tracer.SignalAnrTracer.j E: Failed to register native method com.tencent.matrix.trace.tracer.SignalAnrTracer.nativeInitSignalAnrDetective(Ljava/lang/String;Ljava/lang/String;)V in /data/app/sample.tencent.matrix-DUp_5L6pdFX20IwjCnbqKw==/base.apk E: FATAL EXCEPTION: main Process: sample.tencent.matrix, PID: 27316 java.lang.UnsatisfiedLinkError: JNI_ERR returned from JNI_OnLoad in "/data/app/sample.tencent.matrix-DUp_5L6pdFX20IwjCnbqKw==/lib/arm64/libtrace-canary.so" at java.lang.Runtime.loadLibrary0(Runtime.java:1071) at java.lang.Runtime.loadLibrary0(Runtime.java:1007) at java.lang.System.loadLibrary(System.java:1667) at com.tencent.matrix.trace.tracer.SignalAnrTracer.(SignalAnrTracer.java:1) at b.c.a.m.a.run(TracePlugin.java:22) at b.c.a.m.c.start(TracePlugin.java:7) at sample.tencent.matrix.MatrixApplication.onCreate(MatrixApplication.java:58) at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1190) at android.app.ActivityThread.handleMakeApplication(ActivityThread.java:7184) at android.app.ActivityThread.handleBindApplication(ActivityThread.java:7134) at android.app.ActivityThread.access$1600(ActivityThread.java:274) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2102) at android.os.Handler.dispatchMessage(Handler.java:107) at android.os.Looper.loop(Looper.java:237) at android.app.ActivityThread.main(ActivityThread.java:8167) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:496) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1100) E: [Application Error: sample.tencent.matrix#0] rejecting buffer: bufWidth=1452, bufHeight=751, front.active_legacy.{w=1452, h=688} E: [Surface(name=AppWindowToken{7248de6 token=Token{b5bc441 ActivityRecord{5ccbf28 u0 sample.tencent.matrix/.SplashActivity t986}}})/@0x47abe83 - animation-leash#0] No local sync point found, barrierLayer : [com.sec.android.app.launcher/com.sec.android.app.launcher.activities.LauncherActivity$_2671#0]

Andyload commented 2 years ago

@scuzoutao 你看下transformClassesWithMatrixTraceTransformForDebug这个task输出有没抛出什么异常

headfirst123 commented 2 years ago

你的来信已收到,谢谢