转载请申明,本文来自:https://blog.csdn.net/shijianduan1/article/details/85252096
问题:
Cannot cast object 'com.android.build.gradle.internal.scope.BuildArtifactsHolder$FinalBuildableArtifact@7599177f'
with class 'com.android.build.gradle.internal.scope.BuildArtifactsHolder$FinalBuildableArtifact'
to class 'org.gradle.api.file.FileCollection'
***************** 02.02更新 ************************
昨天 robust 已经更新到 0.4.85了,然后回了我的issue,我试了下 已经可以 适配gradle 高版本了。 只要替换下引用的robust版本号就好了 ,其余见 GitHub-Robust
***************** 12.26更新 ************************
添加签名后还是报错了, 这次仔细排查了下,查看了详细的编译log,
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':robust:packageRelease'.
> Cannot cast object 'com.android.build.gradle.internal.scope.BuildArtifactsHolder$FinalBuildableArtifact@b88330b' with class 'com.android.build.gradle.internal.scope.BuildArtifactsHolder$FinalBuildableArtifact' to class 'org.gradle.api.file.FileCollection'
* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.
* Get more help at https://help.gradle.org
Deprecated Gradle features were used in this build, making it incompatible with Gradle 5.0.
See https://docs.gradle.org/4.6/userguide/command_line_interface.html#sec:command_line_warnings
BUILD FAILED in 2s
分析:
1. log中提示 与Gradle5.0 不兼容
2. 重新编译了下,发现debug 可以顺利通过,release失败
3.Github:Robust 官方代码查看了下,用的是gradle 2.1编译的, 官方说明是 “Gradle 2.10+ , include 3.0” ,而我本地的是gradle3.2.1
结果:
1. 不知道是不是 分析3 中, 本地gradle版本太高不兼容导致的
***************** 12.25更新 (以下方法没用)***************
解决方案:
应用没有签名,添加签名即可
示例:
1.每次手动点击 build – generate signed bundle/apk
2.在app的build.gradle中配置下面
android {
signingConfigs {
main {
File key = new File("路径") //如果是在根目录下,"../签名.jks"
keyAlias "别名"
keyPassword "密码"
storeFile file(key)
storePassword "密码"
}
}
buildTypes {
release {
signingConfig signingConfigs.main
}
debug {
signingConfig signingConfigs.main
}
}
}