此bounty已结束,回答此问题可获得+100声望奖励,奖励宽限期18小时后结束,snachmsm希望引起更多关注此问题。
我的项目包含三个模块:main - pure Java,3rd-party app - pure Java and another 3rd-party app -Kotlin,1.5.10
项目没有维护,但仍然工作,我有一个任务,以实现一些库在它,在主模块.我已经开发了整个解决方案,没有调试问题,但现在当我试图构建发布APK我得到4在:lintVitalBasicRelease
阶段类似于下面的错误
..f4b73468ce598bb17f04/kotlin-stdlib-1.6.0.jar!/META-INF/kotlin-stdlib.kotlin_module:
Module was compiled with an incompatible version of Kotlin.
The binary version of its metadata is 1.6.0, expected version is 1.4.0.
kotlin-stdlib-common-1.6.0.jar
、preference-1.2.0.jar
和slidingpanelayout-1.2.0.jar
相同,所有版本均为1.6/1.4
项目等级:
buildscript {
ext.kotlin_version = '1.5.10'
repositories {
jcenter()
flatDir {
dirs 'libs'
}
maven {
url 'https://maven.google.com/'
name 'Google'
}
google()
}
dependencies {
classpath 'com.android.tools.build:gradle:4.2.2'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
...
第三方Kotlin应用/模块的gradle:
apply plugin: 'com.android.library'
apply plugin: 'kotlin-android-extensions'
apply plugin: 'kotlin-android'
android {
compileSdkVersion 29
buildToolsVersion "29.0.3"
defaultConfig {
minSdkVersion 21
targetSdkVersion 29
...
dependencies {
compile "androidx.core:core-ktx:1.6.0"
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
...
main module(noKotlin!):
apply plugin: 'com.android.application'
android {
compileSdkVersion 31
buildToolsVersion '30.0.3'
defaultConfig {
minSdkVersion 21
targetSdkVersion 27
...
dependencies {
...
implementation('com.dji:dji-sdk:4.16.4', {
exclude module: 'fly-safe-database'
})
compileOnly 'com.dji:dji-sdk-provided:4.16.4'
...
implementation project(path: ':somekotlininhere')
implementation project(path: ':purejavamodule')
}
没有张贴以上实施THIS SDK项目正在建设和签署罚款,我生产APK没有问题
有趣的是,在链接的sdk repo中,我们可以找到Sample Code,它们具有完全相同的Kotlin版本(1.5.10)和依赖项,甚至以相同的方式声明(使用共享的ext.kotlin_version
)
更新Kotlin到最新的1.8.10引入了一些新的错误/弃用,解决后我回到了相同的点和初始错误......我已经恢复了这个更改,我不是Kotlin模块的作者,我宁愿不碰
所以:什么是适当的声明,我的情况下,我如何才能释放我的项目现在,因为它的工作相当不错“通过电缆”(调试)
是的,这个问题是THIS的重复,但我相信我已经发布了更多有用和详细的信息来解决这个问题。
1条答案
按热度按时间x6yk4ghg1#
也许将以下代码行放入项目的Gradle中对您有用
或者你只需要关掉你的线头警告
但我不推荐那些。
最困难的方法是升级依赖项,但它更可靠。
在您的应用程序Gradle中,根据您的Java版本使用以下代码
经编辑的答案_________________________________________
在您的
app Gradle
中尝试以下打包选项:app progaurd file
中的progaurd规则:希望这能推动你前进:)