All*_*n W 7 android conflicting-libraries kotlin
我最近通过JitPack添加了两个Android库,我有以下错误:
Duplicate files copied in APK META-INF/library_release.kotlin_module
Run Code Online (Sandbox Code Playgroud)
我已经清除了缓存,我尝试将模块排除在外
exclude group: 'org.jetbrains'
Run Code Online (Sandbox Code Playgroud)
和
exclude group: 'org.jetbrains.kotlin'
Run Code Online (Sandbox Code Playgroud)
但似乎都没有解决这个问题.有没有办法阻止kotlin stdlib通过JitPack添加?奇怪的是,像DbFlow这样的其他库没有这个问题,虽然我没有看到他们的设置有什么特别之处(除了它不是通过JitPack)
Mat*_*Pag 13
您应该将其添加到标记build.gradle内的应用程序文件中android
packagingOptions {
exclude 'META-INF/library_release.kotlin_module'
}
Run Code Online (Sandbox Code Playgroud)
小智 7
正如帖子中建议的那样,Kotlin M13出局了!创建人jetbrains:
确保打包过程未剥离这些.kotlin_module文件。
因此,我们不能使用exclude选项排除此资源文件的生成。
在Maven中,我们使用groupId和artifactId作为模块名称,但是您可以说
<configuration>
<moduleName>com.example.mymodule</moduleName>
</configuration>
Run Code Online (Sandbox Code Playgroud)
在Gradle中,它是项目名称+构建任务名称,用于自定义:
compileKotlin {
kotlinOptions.moduleName = "com.example.mymodule"
}
Run Code Online (Sandbox Code Playgroud)
这是我对Android库项目的配置:
ext {
GROUP_ID = 'custom.group.id'
ARTIFACT_ID = 'artifactid'
}
android {
compileSdkVersion 25
buildToolsVersion "25.0.0"
compileOptions {
kotlinOptions.freeCompilerArgs += ['-module-name', "$GROUP_ID.$ARTIFACT_ID"]
}
defaultConfig {
...
}
buildTypes {
...
}
}
Run Code Online (Sandbox Code Playgroud)
META-INF/custom.group.id.artifactId.kotlin_module将生成名为的资源文件,而不是。META-INF/library_release.kotlin_module找不到更多重复的文件。
看了其他冲突之后,看来解决方法是
packagingOptions {
pickFirst 'META-INF/library_release.kotlin_module'
}
Run Code Online (Sandbox Code Playgroud)
下android的应用gradle这个。
这允许apk构建
| 归档时间: |
|
| 查看次数: |
4501 次 |
| 最近记录: |