sensorsdata / sa-sdk-android

神策数据官方 Android 埋点 SDK,是一款轻量级用于 Android 端的数据采集埋点 SDK,包含代码埋点、全埋点、点击图和可视化全埋点功能。全埋点通过配合神策官方 Android 埋点插件来实现,神策数据官方 Android 埋点插件使用字节码插桩(ASM)的技术实现 Android 端的全埋点(无埋点、无码埋点、无痕埋点、自动埋点)。
http://opensource.sensorsdata.cn
Other
1.31k stars 434 forks source link

Gradle升级后,打包耗时且不断打印R8: Expected stack map table for method with non-linear control flow. In later version of R8, the method may be assumed not reachable. #116

Closed Hynsn closed 1 year ago

Hynsn commented 1 year ago

image workspace/object_android_apk_pack_gradle7/xxx/android/app/build/intermediates/transforms/sensorsAnalyticsAutoTrack/check/releaseStaging/57.jar: R8: Expected stack map table for method with non-linear control flow. In later version of R8, the method may be assumed not reachable. 请问新版本中有解决这个问题吗?是否有适配R8?

GvcZhang commented 1 year ago

您使用的插件版本是多少呢?

Hynsn commented 1 year ago

您使用的插件版本是多少呢?

你好! com.sensorsdata.analytics.android:android-gradle-plugin2:3.4.5 com.sensorsdata.analytics.android:SensorsAnalyticsSDK:5.4.3

Hynsn commented 1 year ago

您使用的插件版本是多少呢?

您使用的插件版本是多少呢?

你好! com.sensorsdata.analytics.android:android-gradle-plugin2:3.4.5 com.sensorsdata.analytics.android:SensorsAnalyticsSDK:5.4.3

您使用的插件版本是多少呢?

你好! com.sensorsdata.analytics.android:android-gradle-plugin2:3.4.5 com.sensorsdata.analytics.android:SensorsAnalyticsSDK:5.4.3

请问有查出结果吗

Hynsn commented 1 year ago

@dengshiwei 大佬 可以帮忙看看这个问题吗,要石沉的感觉

GvcZhang commented 1 year ago

image 之前已经优化过,如果量不大,不影响查看日志可以不用管。目前没办法彻底消除这个,后面会考虑做优化。

@Hynsn

Hynsn commented 1 year ago

image 之前已经优化过,如果量不大,不影响查看日志可以不用管。目前没办法彻底消除这个,后面会考虑做优化。

@Hynsn

好的,不过我这个是R8,希望有空看看,经常打好多这个感觉就像卡住了的感觉.

GvcZhang commented 1 year ago

你也可以看看,不使用神策插件,对应的日志还多不多,因为有可能是其他插件处理不到位,流转到神策插件消费的时候也会体现出来。

Hynsn commented 1 year ago

你也可以看看,不使用神策插件,对应的日志还多不多,因为有可能是其他插件处理不到位,流转到神策插件消费的时候也会体现出来。

/.gradle/caches/transforms-3/66a26bf473915696432e858b9449bfbb/transformed/jetified-qnsdk-2.3.0.jar: R8: Expected stack map table for method with non-linear control flow. In later version of R8, the method may be assumed not reachable.

其它jar包也存在类似的log,gradle编译过程会将日志流转到神策插件吗?神策插件任务处理是靠后的顺序执行吗

GvcZhang commented 1 year ago

你也可以看看,不使用神策插件,对应的日志还多不多,因为有可能是其他插件处理不到位,流转到神策插件消费的时候也会体现出来。

/.gradle/caches/transforms-3/66a26bf473915696432e858b9449bfbb/transformed/jetified-qnsdk-2.3.0.jar: R8: Expected stack map table for method with non-linear control flow. In later version of R8, the method may be assumed not reachable.

其它jar包也存在类似的log,gradle编译过程会将日志流转到神策插件吗?神策插件任务处理是靠后的顺序执行吗

跟 jar 包没关系的。是有其他的 Gradle Plugin 也会处理字节码。按照 apply 插件的顺序依次向下传递,如果神策插件是最后处理的,当进行 dex 打包的时候 AGP 会对字节码做判断,如果有问题就会反应在最后的插件上。关于这方面你可以了解一下 Transform:https://developer.android.com/reference/tools/gradle-api/7.3/com/android/build/api/transform/Transform