D8 编译失败在uni-app中加入阿里云 APM 后
D8 编译失败在uni-app中加入阿里云 APM 后
操作步骤:
- 项目集成了
com.aliyun.ams:alicloud-apm
预期结果:
- 编译 混淆通过
实际结果:
- 报错
bug描述:
- Cannot constrain type: @Nullable android.content.Intent {android.os.Parcelable, java.lang.Cloneable} for value: v29 by constraint: INT
- Compilation failed to complete, position: Lcom/dmcbig/mediapicker/PickerActivity;->onCreate(Landroid/os/Bundle;)V, origin: /Users/tt/.gradle/caches/8.13/transforms/17d9d65b07c1599baff04d5d7e359581/transformed/jetified-DCUniMPSDK-V2-release-runtime.jar:com/dmcbig/mediapicker/PickerActivity.class
| 信息类别 | 内容 |
|------------|-------------------|
| 产品分类 | uni小程序SDK |
| 手机系统 | Android |
| 系统版本 | Android 16 |
| 手机厂商 | 华为 |
| 手机型号 | Android studio |
| 页面类型 | vue |
| SDK版本号 | 4.75 |
| 问题描述 | Cannot constrain type: [@Nullable](/user/Nullable) android.content.Intent {android.os.Parcelable, java.lang.Cloneable} for value: v29 by constraint: INT <br> Compilation failed to complete, position: Lcom/dmcbig/mediapicker/PickerActivity;->onCreate(Landroid/os/Bundle;)V, origin: /Users/tt/.gradle/caches/8.13/transforms/17d9d65b07c1599baff04d5d7e359581/transformed/jetified-DCUniMPSDK-V2-release-runtime.jar:com/dmcbig/mediapicker/PickerActivity.class |
更多关于D8 编译失败在uni-app中加入阿里云 APM 后的实战教程也可以访问 https://www.itying.com/category-93-b0.html
1 回复
更多关于D8 编译失败在uni-app中加入阿里云 APM 后的实战教程也可以访问 https://www.itying.com/category-93-b0.html
这个编译错误是由于阿里云APM的依赖与uni-app现有的依赖(特别是DCUniMPSDK)在类型约束上产生了冲突。错误信息显示在PickerActivity的onCreate方法中,系统无法将Intent类型约束为INT类型。
建议按以下步骤排查:
-
检查依赖版本兼容性:确认使用的阿里云APM版本与uni-app SDK版本兼容。可尝试降低APM版本或升级uni-app SDK至最新稳定版。
-
检查混淆配置:在
proguard-rules.pro中添加以下规则排除冲突类:
-keep class com.dmcbig.mediapicker.** { *; }
-dontwarn com.dmcbig.mediapicker.**
-
排查依赖冲突:执行
./gradlew :app:dependencies查看依赖树,检查是否存在多个不同版本的Android支持库或重复的Parcelable实现。 -
尝试禁用D8优化:在
gradle.properties中添加:
android.enableD8.desugaring=false

