在模块 objectbox-android-2.9.1-runtime 中找到重复的类 io.objectbox.android.AndroidObjectBrowser
Posted
技术标签:
【中文标题】在模块 objectbox-android-2.9.1-runtime 中找到重复的类 io.objectbox.android.AndroidObjectBrowser【英文标题】:Duplicate class io.objectbox.android.AndroidObjectBrowser found in modules objectbox-android-2.9.1-runtime 【发布时间】:2021-09-17 20:42:50 【问题描述】:我正在使用 Kotlin 中的 ObjectBox DB,并希望将 DataBrowser 用于 documentation 中显示的 ObjectBox。在我对 build.gradle 和 manifest 进行更改之前,该项目运行良好。现在,它给出了这样的错误:
> FAILURE:构建完成,失败了 2 次。
1: 任务因异常而失败。
出了什么问题: 任务“:app:checkDebugDuplicateClasses”执行失败。执行 com.android.build.gradle.internal.tasks.CheckDuplicatesRunnable 时发生故障 重复类 io.objectbox.android.AndroidObjectBrowser 在模块 objectbox-android-2.9.1-runtime (io.objectbox:objectbox-android:2.9.1) 和 objectbox-android-objectbrowser-2.9.1-runtime (io.objectbox :objectbox-android-objectbrowser:2.9.1) 在模块 objectbox-android-2.9.1-runtime (io.objectbox:objectbox-android:2.9.1) 和 objectbox-android-objectbrowser-2.9.1-runtime (io.objectbox :objectbox-android-objectbrowser:2.9.1) 在模块 objectbox-android-2.9.1-runtime (io.objectbox:objectbox-android:2.9.1) 和 objectbox-android-objectbrowser-2.9.1-runtime (io .objectbox:objectbox-android-objectbrowser:2.9.1) 在模块 objectbox-android-2.9.1-runtime (io.objectbox:objectbox-android:2.9.1) 和 objectbox-android-objectbrowser-2.9.1-runtime (io.objectbox :objectbox-android-objectbrowser:2.9.1) 在模块 objectbox-android-2.9.1-runtime (io.objectbox:objectbox-android:2.9.1) 和 objectbox-android-objectbrowser-2.9.1-runtime (io.objectbox :objectbox-android-objectbrowser:2.9.1) 在模块 objectbox-android-2.9.1-runtime (io.objectbox:objectbox-android:2.9.1) 和 objectbox-android-objectbrowser-2.9.1-runtime (io. objectbox:objectbox-android-objectbrowser:2.9.1) 在模块 objectbox-android-2.9.1-runtime (io.objectbox:objectbox-android:2.9.1) 和 objectbox-android-objectbrowser-2.9.1-runtime (io .objectbox:objectbox-android-objectbrowser:2.9.1) 重复类 io.objectbox.android.ObjectBoxLiveData 在模块 objectbox-android-2.9.1-runtime (io.objectbox:objectbox-android:2.9.1) 和 objectbox-android-objectbrowser-2.9.1-runtime (io.objectbox :objectbox-android-objectbrowser:2.9.1) 在模块 objectbox-android-2.9.1-runtime (io.objectbox:objectbox-android:2.9.1) 和 objectbox-android-objectbrowser-2.9.1-runtime (io. objectbox:objectbox-android-objectbrowser:2.9.1)
Go to the documentation to learn how to <a href="d.android.com/r/tools/classpath-sync-errors">Fix dependency resolution errors</a>.
尝试:
使用 --stacktrace 选项运行以获取堆栈跟踪。使用 --info 或 --debug 选项运行以获得更多日志输出。运行 --scan 以获得完整的见解。
==================================================== ==============================
2:任务因异常而失败。
出了什么问题: 任务“:app:mergeDebugNativeLibs”执行失败。执行 com.android.build.gradle.internal.tasks.MergeJavaResWorkAction 时发生故障 在路径“lib/armeabi-v7a/libobjectbox-jni.so”中找到 2 个文件。 如果您使用 jniLibs 和 CMake IMPORTED 目标,请参阅 https://developer.android.com/r/tools/jniLibs-vs-imported-targets
尝试: 使用 --stacktrace 选项运行以获取堆栈跟踪。使用 --info 或 --debug 选项运行以获得更多日志输出。运行 --scan 以获得完整的见解。 ==================================================== ==============================
通过https://help.gradle.org获得更多帮助
在 57 秒内构建失败 17 个可操作的任务:7 个已执行,10 个是最新的
之前(毕业)
plugins
id 'com.android.application'
id 'kotlin-android'
id 'kotlin-kapt'
id 'io.objectbox'
android
compileSdkVersion 30
defaultConfig
applicationId "com.example.projectnamehere"
minSdkVersion 21
targetSdkVersion 30
versionCode 1
versionName "1.0"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
buildTypes
release
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
compileOptions
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
kotlinOptions
jvmTarget = '1.8'
dependencies
implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
implementation 'androidx.core:core-ktx:1.6.0'
implementation 'androidx.appcompat:appcompat:1.3.0'
implementation 'com.google.android.material:material:1.4.0'
implementation 'androidx.constraintlayout:constraintlayout:2.0.4'
testImplementation 'junit:junit:4.13.2'
androidTestImplementation 'androidx.test.ext:junit:1.1.3'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0'
implementation "io.objectbox:objectbox-android:2.9.1"
implementation "io.objectbox:objectbox-kotlin:2.9.1"
之后(毕业)
plugins
id 'com.android.application'
id 'kotlin-android'
id 'kotlin-kapt' // Only for Kotlin projects.
android
compileSdkVersion 30
defaultConfig
applicationId "com.example.projectnamehere"
minSdkVersion 21
targetSdkVersion 30
versionCode 1
versionName "1.0"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
buildTypes
release
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
compileOptions
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
kotlinOptions
jvmTarget = '1.8'
dependencies
implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
implementation 'androidx.core:core-ktx:1.6.0'
implementation 'androidx.appcompat:appcompat:1.3.0'
implementation 'com.google.android.material:material:1.4.0'
implementation 'androidx.constraintlayout:constraintlayout:2.0.4'
testImplementation 'junit:junit:4.13.2'
androidTestImplementation 'androidx.test.ext:junit:1.1.3'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0'
implementation "io.objectbox:objectbox-android:2.9.1"
implementation "io.objectbox:objectbox-kotlin:2.9.1"
debugImplementation "io.objectbox:objectbox-android-objectbrowser:$objectboxVersion"
releaseImplementation "io.objectbox:objectbox-android:$objectboxVersion"
apply plugin: 'io.objectbox'
之前(清单)
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.projectnamehere">
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/Theme.ThemeHere">
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
之后(清单)
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.projectnamehere">
<!-- Required to provide the web interface -->
<uses-permission android:name="android.permission.INTERNET" />
<!-- Required to run keep-alive service when targeting API 28 or higher -->
<uses-permission android:name="android.permission.FOREGROUND_SERVICE"/>
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/Theme.ThereHere">
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
【问题讨论】:
【参考方案1】:在 build.gradle 文件中,有两个相同的类使用相同的库但不同的关键字实现 releaseImplementation "io.objectbox:objectbox-android:$objectboxVersion" 实现“io.objectbox:objectbox-android:2.9.1”
【讨论】:
以上是关于在模块 objectbox-android-2.9.1-runtime 中找到重复的类 io.objectbox.android.AndroidObjectBrowser的主要内容,如果未能解决你的问题,请参考以下文章