Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

急!线上大面积华为,荣耀用户突遇崩溃!!! No imolementation found for boolean com,huawei.hms.ads,identifier,AdvertisingIdclient,isAdvertisingIdAvailable(android,content.Context) #85

Open
GuoLiangjun123 opened this issue Apr 12, 2024 · 11 comments

Comments

@GuoLiangjun123
Copy link

1.cnoaid配置如下
implementation('com.github.gzu-liyujiang:Android_CN_OAID:4.2.8') {
// 排除掉本项目依赖的华为官方广告标识服务SDK,也即是使用移动安全联盟SDK依赖的华为官方广告标识服务SDK
exclude group: 'com.huawei.hms', module: 'ads-identifier'
// 荣耀官方广告标识服务SDK同理:
exclude group: 'com.hihonor.mcs', module: 'ads-identifier'
}

2.同时也使用了安全联盟的oaid,版本为2.3.0

3.线上崩溃堆栈如下:
java.lang.UnsatisfiedLinkError: No implementation found for boolean com.hihonor.ads.identifier.AdvertisingIdClient.isAdvertisingIdAvailable(android.content.Context) (tried Java_com_hihonor_ads_identifier_AdvertisingIdClient_isAdvertisingIdAvailable and Java_com_hihonor_ads_identifier_AdvertisingIdClient_isAdvertisingIdAvailable__Landroid_content_Context_2)
at com.hihonor.ads.identifier.AdvertisingIdClient.isAdvertisingIdAvailable(Native Method)
at com.github.gzuliyujiang.oaid.impl.HonorImpl.supported(SourceFile:2)
at com.github.gzuliyujiang.oaid.impl.OAIDFactory.createManufacturerImpl(SourceFile:15)
at com.github.gzuliyujiang.oaid.impl.OAIDFactory.create(SourceFile:4)
at com.github.gzuliyujiang.oaid.DeviceID.getOAID(SourceFile:2)
at com.github.gzuliyujiang.oaid.DeviceID.getOAIDOrOtherId(SourceFile:1)
at com.github.gzuliyujiang.oaid.DeviceID.register(SourceFile:12)
at com.github.gzuliyujiang.oaid.DeviceIdentifier.register(SourceFile:7)
at com.github.gzuliyujiang.oaid.DeviceIdentifier.register(SourceFile:3)

oaid报错

at com.github.gzuliyujiang.oaid.DeviceIdentifier.register(SourceFile:1

@liyujiang-gzu
Copy link
Member

No implementation found for boolean com.hihonor.ads.identifier.AdvertisingIdClient.isAdvertisingIdAvailable说明荣耀的SDK没打包进去,是不是安全联盟的oaid没依赖到了荣耀的SDK?

@GuoLiangjun123
Copy link
Author

No implementation found for boolean com.hihonor.ads.identifier.AdvertisingIdClient.isAdvertisingIdAvailable说明荣耀的SDK没打包进去,是不是安全联盟的oaid没依赖到了荣耀的SDK?

我们直接在安全联盟官网上下载的oaid的aar,这个我们怎么验证是否依赖了荣耀sdk

@GuoLiangjun123
Copy link
Author

AdvertisingIdClient

对比了下混淆配置,应该是漏掉了-keep class com.hihonor.ads.** {; } 和 -keep interface com.huawei.hms.** {;}

@godcop
Copy link

godcop commented Apr 18, 2024

AdvertisingIdClient

对比了下混淆配置,应该是漏掉了-keep class com.hihonor.ads.** {; } 和 -keep interface com.huawei.hms.** {;}

问题解决了吗?

@GuoLiangjun123
Copy link
Author

AdvertisingIdClient

对比了下混淆配置,应该是漏掉了-keep class com.hihonor.ads.** {; } 和 -keep interface com.huawei.hms.** {;}

问题解决了吗?

发版待验证

@liyujiang-gzu
Copy link
Member

AdvertisingIdClient

对比了下混淆配置,应该是漏掉了-keep class com.hihonor.ads.** {; } 和 -keep interface com.huawei.hms.** {;}

本库模块专用的混淆规则(注:“repeackage”拼写是历史遗留问题)

-keep class repeackage.com.uodis.opendevice.aidl.** { ; }
-keep interface repeackage.com.uodis.opendevice.aidl.
* { ; }
-keep class repeackage.com.asus.msa.SupplementaryDID.
* { ; }
-keep interface repeackage.com.asus.msa.SupplementaryDID.
* { ; }
-keep class repeackage.com.bun.lib.
* { ; }
-keep interface repeackage.com.bun.lib.
* { ; }
-keep class repeackage.com.heytap.openid.
* { ; }
-keep interface repeackage.com.heytap.openid.
* { ; }
-keep class repeackage.com.samsung.android.deviceidservice.
* { ; }
-keep interface repeackage.com.samsung.android.deviceidservice.
* { ; }
-keep class repeackage.com.zui.deviceidservice.
* { ; }
-keep interface repeackage.com.zui.deviceidservice.
* { ; }
-keep class repeackage.com.coolpad.deviceidsupport.
* { ; }
-keep interface repeackage.com.coolpad.deviceidsupport.
* { ; }
-keep class repeackage.com.android.creator.
* { ; }
-keep interface repeackage.com.android.creator.
* { ; }
-keep class repeackage.com.google.android.gms.ads.identifier.internal.
* { ; }
-keep interface repeackage.com.google.android.gms.ads.identifier.internal.
{ ; }
-keep class repeackage.com.oplus.stdid.
* {; }
-keep interface repeackage.com.oplus.stdid.** {
; }
-keep class com.huawei.hms.ads.** {; }
-keep interface com.huawei.hms.ads.** {
; }
-keep class com.hihonor.ads.** {; }
-keep interface com.hihonor.ads.** {
; }
-keep class repeackage.com.qiku.id.** { ; }
-keep interface repeackage.com.qiku.id.
* { *; }

@GuoLiangjun123
Copy link
Author

AdvertisingIdClient

对比了下混淆配置,应该是漏掉了-keep class com.hihonor.ads.** {; } 和 -keep interface com.huawei.hms.** {;}

本库模块专用的混淆规则(注:“repeackage”拼写是历史遗留问题)

-keep class repeackage.com.uodis.opendevice.aidl.** { ; } -keep interface repeackage.com.uodis.opendevice.aidl.* { ; } -keep class repeackage.com.asus.msa.SupplementaryDID.* { ; } -keep interface repeackage.com.asus.msa.SupplementaryDID.* { ; } -keep class repeackage.com.bun.lib.* { ; } -keep interface repeackage.com.bun.lib.* { ; } -keep class repeackage.com.heytap.openid.* { ; } -keep interface repeackage.com.heytap.openid.* { ; } -keep class repeackage.com.samsung.android.deviceidservice.* { ; } -keep interface repeackage.com.samsung.android.deviceidservice.* { ; } -keep class repeackage.com.zui.deviceidservice.* { ; } -keep interface repeackage.com.zui.deviceidservice.* { ; } -keep class repeackage.com.coolpad.deviceidsupport.* { ; } -keep interface repeackage.com.coolpad.deviceidsupport.* { ; } -keep class repeackage.com.android.creator.* { ; } -keep interface repeackage.com.android.creator.* { ; } -keep class repeackage.com.google.android.gms.ads.identifier.internal.* { ; } -keep interface repeackage.com.google.android.gms.ads.identifier.internal. { ; } -keep class repeackage.com.oplus.stdid.* {; } -keep interface repeackage.com.oplus.stdid.** {; } -keep class com.huawei.hms.ads.** {; } -keep interface com.huawei.hms.ads.** {; } -keep class com.hihonor.ads.** {; } -keep interface com.hihonor.ads.** {; } -keep class repeackage.com.qiku.id.** { ; } -keep interface repeackage.com.qiku.id.* { *; }

荣耀手机还是崩溃,必先,并且是debug版本没开混淆
荣耀崩溃

@liyujiang-gzu
Copy link
Member

这种情况,要么是没把荣耀的SDK作为运行时依赖进去,要么就是混淆后找不到类。看一下荣耀的SDK依赖项是否下载到了

@GuoLiangjun123
Copy link
Author

这种情况,要么是没把荣耀的SDK作为运行时依赖进去,要么就是混淆后找不到类。看一下荣耀的SDK依赖项是否下载到了

咋验证呢

@liyujiang-gzu
Copy link
Member

这种情况,要么是没把荣耀的SDK作为运行时依赖进去,要么就是混淆后找不到类。看一下荣耀的SDK依赖项是否下载到了

咋验证呢

反编译APK,看里面有没有荣耀SDK相关类

@liyujiang-gzu
Copy link
Member

参阅 #86

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants