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

(求大佬指导)荣耀设备崩溃:java.lang.NoClassDefFoundError: Failed resolution of: Lcom/hihonor/ads/identifier/AdvertisingIdClient; #89

Open
lllyeeAB opened this issue May 14, 2024 · 10 comments

Comments

@lllyeeAB
Copy link

如题,其他品牌没问题,只要是荣耀的话调用DeviceIdentifier.register就崩溃。
逛了一圈发现,好像是没打进去荣耀sdk导致的,

然后我将gradle从下面这样:
implementation('com.github.gzu-liyujiang:Android_CN_OAID:4.2.8') {
exclude group: 'com.huawei.hms', module: 'ads-identifier'
exclude group: 'com.hihonor.mcs', module: 'ads-identifier'
}
改成了这样:
implementation('com.github.gzu-liyujiang:Android_CN_OAID:4.2.8') {
exclude group: 'com.huawei.hms', module: 'ads-identifier'
// 荣耀官方广告标识服务SDK
runtimeOnly "com.hihonor.mcs:ads-identifier:1.0.2.301"
}

然后出现了编译报错:Duplicate class com.hihonor.cloudservice.oaid.a found in modules jetified-RangersAppLog-Lite-cn-6.16.3-runtime (com.bytedance.applog:RangersAppLog-Lite-cn:6.16.3) and jetified-ads-identifier-1.0.2.301-runtime (com.hihonor.mcs:ads-identifier:1.0.2.301)

遇到了一些冲突,项目是使用了csj的一些库:
implementation('com.bytedance.applog:RangersAppLog-Lite-cn:6.16.3')

然后求助了下AI。。(安卓新手),尝试了exclude的一些写法:

implementation('com.bytedance.applog:RangersAppLog-Lite-cn:6.16.3') {
exclude group: 'com.hihonor.cloudservice', module: 'oaid'
}
// 或者
implementation('com.hihonor.mcs:ads-identifier:1.0.2.301') {
exclude group: 'com.hihonor.cloudservice', module: 'oaid'
}

总而言之现在绕不开这个冲突,我也不知道整个流程是不是应该这样?我想解决荣耀崩溃的问题,但是好像又遇到冲突,不知道是不是该这样做。。混淆配置那些都是copy的。。

求大佬指导下我的gradle到底应该怎么写才不会冲突又能将荣耀的sdk依赖进去。。感谢。。🙏

@lllyeeAB
Copy link
Author

另外有大佬用过umeng的oaid获取方法吗?靠谱吗?我试了下可以荣耀获取的。。就是不知道对比作者这个哪个好一些?

UMConfigure.getOaid(this, object : OnGetOaidListener {
override fun onGetOaid(p0: String?) {
val oaid = p0.toString()
}
})

@bxxasn
Copy link

bxxasn commented May 14, 2024

有大佬知道啥情况么...
DeviceIdentifier.register(this); 第一步初始化就闪退了.
直接就闪退了

@lllyeeAB
Copy link
Author

有大佬知道啥情况么... DeviceIdentifier.register(this); 第一步初始化就闪退了. 直接就闪退了

你是荣耀设备才会这样吗?华为会不会?

@SkywardSky
Copy link

直接使用:implementation('com.github.gzu-liyujiang:Android_CN_OAID:4.2.9')

@SkywardSky
Copy link

不要加啥exclude group: 'com.huawei.hms', module: 'ads-identifier'
exclude group: 'com.hihonor.mcs', module: 'ads-identifier'

@LoveMissLove
Copy link

另外有大佬用过umeng的oaid获取方法吗?靠谱吗?我试了下可以荣耀获取的。。就是不知道对比作者这个哪个好一些?

UMConfigure.getOaid(this, object : OnGetOaidListener { override fun onGetOaid(p0: String?) { val oaid = p0.toString() } })

目前我用的最新友盟获取oaid很多机型都崩溃,而且这些崩溃还是友盟内部的,我在外边try不到,改用这个库了

@lllyeeAB
Copy link
Author

另外有大佬用过umeng的oaid获取方法吗?靠谱吗?我试了下可以荣耀获取的。。就是不知道对比作者这个哪个好一些?
UMConfigure.getOaid(this, object : OnGetOaidListener { override fun onGetOaid(p0: String?) { val oaid = p0.toString() } })

目前我用的最新友盟获取oaid很多机型都崩溃,而且这些崩溃还是友盟内部的,我在外边try不到,改用这个库了

我丢。。那这些崩溃在友盟本身的监控后台能捕捉到吗??我这几天看崩溃还可以,看不到关于这个的崩溃。

@lllyeeAB
Copy link
Author

不要加啥exclude group: 'com.huawei.hms', module: 'ads-identifier' exclude group: 'com.hihonor.mcs', module: 'ads-identifier'

这样的话编译会报错:
Duplicate class com.hihonor.cloudservice.oaid.a found in modules jetified-RangersAppLog-Lite-cn-6.16.3-runtime (com.bytedance.applog:RangersAppLog-Lite-cn:6.16.3) and jetified-ads-identifier-1.0.2.301-runtime (com.hihonor.mcs:ads-identifier:1.0.2.301)

它和我另外一个库有冲突 : RangersAppLog-Lite-cn-6.16.3

@lllyeeAB
Copy link
Author

不要加啥exclude group: 'com.huawei.hms', module: 'ads-identifier' exclude group: 'com.hihonor.mcs', module: 'ads-identifier'

然后我加上exclude的话:
implementation('com.github.gzu-liyujiang:Android_CN_OAID:4.2.9') {
exclude group: 'com.hihonor.mcs', module: 'ads-identifier'
}
编译就能过了,但是调用DeviceIdentifier.register方法又崩溃:
java.lang.NoClassDefFoundError: Failed resolution of: Lcom/hihonor/ads/identifier/AdvertisingIdClient;

@lllyeeAB
Copy link
Author

implementation('com.github.gzu-liyujiang:Android_CN_OAID:4.2.9')
implementation('com.bytedance.applog:RangersAppLog-Lite-cn:6.16.3')

这两个库似乎都依赖com.hihonor.mcs这个包,所以编译时会报错:Duplicate class com.hihonor.cloudservice.oaid.a found in modules jetified-RangersAppLog-Lite-cn-6.16.3-runtime (com.bytedance.applog:RangersAppLog-Lite-cn:6.16.3) and jetified-ads-identifier-1.0.2.301-runtime (com.hihonor.mcs:ads-identifier:1.0.2.301)

我该如何声明build.gradle文件,让这两个库都共存的情况下,并且都能用上com.hihonor.mcs的内容。也不会有这个编译冲突呢?

大佬或者作者大大能不能支支招啊!

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

4 participants