Skip to content

Commit bee4004

Browse files
committed
bug(android):处理高德地图导航显示导航信息异常
1 parent c4d72db commit bee4004

File tree

14 files changed

+477
-392
lines changed

14 files changed

+477
-392
lines changed

Android/buildSrc/src/main/kotlin/com/didichuxing/doraemonkit/plugin/transform/classtransform/AbsClassTransformer.kt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,10 @@ open class AbsClassTransformer : ClassTransformer {
4343
return klass
4444
}
4545

46+
if (DoKitExtUtil.ignorePackageNames(klass.className)) {
47+
return klass
48+
}
49+
4650
if (context is DoKitTransformContext) {
4751
val project = context.project()
4852
val dokit = context.dokitExtension()

Android/buildSrc/src/main/kotlin/com/didichuxing/doraemonkit/plugin/transform/classtransform/BigImgClassTransformer.kt

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
package com.didichuxing.doraemonkit.plugin.transform.classtransform
22

3-
import com.didichuxing.doraemonkit.plugin.DoKitExtUtil
43
import com.didichuxing.doraemonkit.plugin.extension.DoKitExtension
54
import com.didichuxing.doraemonkit.plugin.getMethodExitInsnNodes
65
import com.didichuxing.doraemonkit.plugin.lastPath
@@ -31,10 +30,6 @@ class BigImgClassTransformer : AbsClassTransformer() {
3130
return klass
3231
}
3332

34-
return klass
35-
if (DoKitExtUtil.ignorePackageNames(klass.className)) {
36-
}
37-
3833
val className = klass.className
3934
//glide
4035
if (dokit.bigImage.glide && className == "com.bumptech.glide.request.SingleRequest") {

Android/buildSrc/src/main/kotlin/com/didichuxing/doraemonkit/plugin/transform/classtransform/CommClassTransformer.kt

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -23,13 +23,24 @@ import org.objectweb.asm.tree.*
2323
*/
2424
class CommClassTransformer : AbsClassTransformer() {
2525

26+
override fun transform(context: TransformContext, klass: ClassNode): ClassNode {
27+
28+
val className = klass.className
29+
val superName = klass.formatSuperName
30+
31+
//hook Androidx的ComponentActivity
32+
if (className != "com.didichuxing.doraemonkit.aop.mc.DoKitProxyActivity" && superName == "android.app.Activity") {
33+
createComponentActivitySuperActivityImpl(klass)
34+
}
35+
36+
return super.transform(context, klass)
37+
}
2638

2739
/**
2840
* 类处理转化实现
2941
*/
3042
override fun transform(project: Project, dokit: DoKitExtension, context: TransformContext, klass: ClassNode): ClassNode {
3143
val className = klass.className
32-
val superName = klass.formatSuperName
3344

3445
//查找DoraemonKitReal&pluginConfig方法并插入指定字节码
3546
if (className == "com.didichuxing.doraemonkit.DoKitReal") {
@@ -41,12 +52,6 @@ class CommClassTransformer : AbsClassTransformer() {
4152
methodNode?.instructions?.insert(createPluginConfigInsnList(dokit.gpsEnable, dokit.networkEnable, dokit.bigImageEnable))
4253
}
4354
}
44-
45-
//hook Androidx的ComponentActivity
46-
if (className != "com.didichuxing.doraemonkit.aop.mc.DoKitProxyActivity" && superName == "android.app.Activity") {
47-
createComponentActivitySuperActivityImpl(klass)
48-
}
49-
5055
return klass
5156
}
5257

Android/buildSrc/src/main/kotlin/com/didichuxing/doraemonkit/plugin/transform/classtransform/ThirdLibsClassTransformer.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,8 @@ import org.objectweb.asm.tree.*
2525
class ThirdLibsClassTransformer : AbsClassTransformer() {
2626

2727
override fun transform(project: Project, dokit: DoKitExtension, context: TransformContext, klass: ClassNode): ClassNode {
28-
2928
val className = klass.className
29+
3030
if (dokit.thirdLibEnable) {
3131
//查找DoraemonKitReal&pluginConfig方法并插入指定字节码
3232
if (className == "com.didichuxing.doraemonkit.DoKitReal") {

Android/buildSrc/src/main/kotlin/com/didichuxing/doraemonkit/plugin/transform/classtransform/UrlConnectionTransformer.kt

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,9 +27,8 @@ class UrlConnectionTransformer : AbsClassTransformer() {
2727
private val DESC = "(Ljava/net/URLConnection;)Ljava/net/URLConnection;"
2828

2929
override fun transform(project: Project, dokit: DoKitExtension, context: TransformContext, klass: ClassNode): ClassNode {
30-
31-
3230
val className = klass.className
31+
3332
if (dokit.networkEnable && dokit.network.urlConnect) {
3433
// url connection
3534
klass.methods.forEach { method ->

Android/dokit-gps-mock/build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -80,9 +80,9 @@ dependencies {
8080

8181
api files('libs/BaiduLBS_Android.jar')
8282

83-
compileOnly rootProject.ext.dependencies["amap_location"]
8483
//高德导航
8584
compileOnly rootProject.ext.dependencies["amap_navi"]
85+
compileOnly rootProject.ext.dependencies["amap_location"]
8686
//腾讯地图定位
8787
compileOnly rootProject.ext.dependencies["tencent_location"]
8888
}

0 commit comments

Comments
 (0)