sensorsdata / sa-sdk-android

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

插件版本6.5.1,java.lang.ClassCastException #111

Closed xyz-fly closed 1 year ago

xyz-fly commented 1 year ago

构建环境: android-gradle版本: 7.3.0 gradle版本:7.5.1 sensor-SensorsAnalyticsSDK 版本:6.5.1 sensor-plugin-gradle版本:3.5.0

在构建的时候报错:

java.lang.ClassCastException: class java.lang.String cannot be cast to class org.objectweb.asm.Type (java.lang.String is in module java.base of loader 'bootstrap'; org.objectweb.asm.Type is in unnamed module of loader org.gradle.internal.classloader.VisitableURLClassLoader @468ceb3a) at com.sensorsdata.analytics.android.plugin.viewclick.SensorsAutoTrackMethodVisitor.visitInvokeDynamicInsn(SensorsAutoTrackMethodVisitor.java:90) at org.objectweb.asm.MethodVisitor.visitInvokeDynamicInsn(MethodVisitor.java:462) at org.objectweb.asm.commons.AdviceAdapter.visitInvokeDynamicInsn(AdviceAdapter.java:504) at org.objectweb.asm.ClassReader.readCode(ClassReader.java:2451) at org.objectweb.asm.ClassReader.readMethod(ClassReader.java:1491) at org.objectweb.asm.ClassReader.accept(ClassReader.java:721) at org.objectweb.asm.ClassReader.accept(ClassReader.java:401) at org.objectweb.asm.ClassReader$accept.call(Unknown Source) at com.sensorsdata.analytics.android.plugin.SensorsAnalyticsTransform.modifyClass(SensorsAnalyticsTransform.groovy:439) at jdk.internal.reflect.GeneratedMethodAccessor182.invoke(Unknown Source) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:568) at org.codehaus.groovy.runtime.callsite.PlainObjectMetaMethodSite.doInvoke(PlainObjectMetaMethodSite.java:43) at org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite$PogoCachedMethodSiteNoUnwrapNoCoerce.invoke(PogoMetaMethodSite.java:193) at org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite.callCurrent(PogoMetaMethodSite.java:61) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:194) at com.sensorsdata.analytics.android.plugin.SensorsAnalyticsTransform.modifyClassFile(SensorsAnalyticsTransform.groovy:462) at jdk.internal.reflect.GeneratedMethodAccessor201.invoke(Unknown Source) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:568) at org.codehaus.groovy.runtime.callsite.PlainObjectMetaMethodSite.doInvoke(PlainObjectMetaMethodSite.java:43) at org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite$PogoCachedMethodSiteNoUnwrapNoCoerce.invoke(PogoMetaMethodSite.java:193) at org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite.callCurrent(PogoMetaMethodSite.java:61) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:203) at com.sensorsdata.analytics.android.plugin.SensorsAnalyticsTransform.forEachDir(SensorsAnalyticsTransform.groovy:281) at jdk.internal.reflect.GeneratedMethodAccessor200.invoke(Unknown Source) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:568) at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:107) at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:323) at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:362) at org.codehaus.groovy.runtime.callsite.PogoMetaClassSite.callCurrent(PogoMetaClassSite.java:61) at com.sensorsdata.analytics.android.plugin.SensorsAnalyticsTransform$_forEachDirectory_closure3.doCall(SensorsAnalyticsTransform.groovy:275) at jdk.internal.reflect.GeneratedMethodAccessor199.invoke(Unknown Source) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:568) at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:107) at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:323) at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:274) at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1035) at groovy.lang.Closure.call(Closure.java:412) at groovy.lang.Closure.call(Closure.java:428) at org.codehaus.groovy.runtime.ResourceGroovyMethods.traverse(ResourceGroovyMethods.java:1499) at org.codehaus.groovy.runtime.ResourceGroovyMethods.traverse(ResourceGroovyMethods.java:1487) at org.codehaus.groovy.runtime.ResourceGroovyMethods.traverse(ResourceGroovyMethods.java:1487) at org.codehaus.groovy.runtime.ResourceGroovyMethods.traverse(ResourceGroovyMethods.java:1487) at org.codehaus.groovy.runtime.ResourceGroovyMethods.traverse(ResourceGroovyMethods.java:1360) at org.codehaus.groovy.runtime.dgm$1124.invoke(Unknown Source) at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite$PojoMetaMethodSiteNoUnwrapNoCoerce.invoke(PojoMetaMethodSite.java:247) at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite.call(PojoMetaMethodSite.java:56) at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:47) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:125) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:148) at com.sensorsdata.analytics.android.plugin.SensorsAnalyticsTransform.forEachDirectory(SensorsAnalyticsTransform.groovy:273) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:568) at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:107) at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:323) at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1268) at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.invokeMethodOnCurrentN(ScriptBytecodeAdapter.java:94) at com.sensorsdata.analytics.android.plugin.SensorsAnalyticsTransform.this$dist$invoke$2(SensorsAnalyticsTransform.groovy) at com.sensorsdata.analytics.android.plugin.SensorsAnalyticsTransform$2.methodMissing(SensorsAnalyticsTransform.groovy) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:568) at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:107) at groovy.lang.MetaClassImpl.invokeMissingMethod(MetaClassImpl.java:953) at groovy.lang.MetaClassImpl.invokePropertyOrMissing(MetaClassImpl.java:1347) at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1270) at org.codehaus.groovy.runtime.callsite.PogoMetaClassSite.callCurrent(PogoMetaClassSite.java:61) at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallCurrent(CallSiteArray.java:51) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:171) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:212) at com.sensorsdata.analytics.android.plugin.SensorsAnalyticsTransform$2.call(SensorsAnalyticsTransform.groovy:130) at java.base/java.util.concurrent.ForkJoinTask$AdaptedCallable.exec(ForkJoinTask.java:1428) at java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:373) at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1182) at java.base/java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1655) at java.base/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1622) at java.base/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:165)

liuweiqiang2016 commented 1 year ago

插件 v3.5.3 修复该问题,详见:https://github.com/sensorsdata/sa-sdk-android-plugin2/releases/tag/v3.5.3