我正在开发一个Android库,它与其他库有一些依赖关系:
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'androidx.appcompat:appcompat:1.4.1'
testImplementation 'junit:junit:4.13.2'
implementation 'androidx.localbroadcastmanager:localbroadcastmanager:1.1.0'
implementation 'no.nordicsemi.android:dfu:2.0.2'
implementation 'no.nordicsemi.android.support.v18:scanner:1.6.0'
implementation 'no.nordicsemi.android:ble:2.4.0'
implementation 'com.google.code.gson:gson:2.9.0'
implementation "androidx.core:core-ktx:1.7.0"
implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.0'
}
然后我构建了一个带有渐变任务assembleRelease
的.aar
或带有渐变任务createFullJarRelease
的.jar
。
当我开发使用此库的应用程序时implementation files("libs/MyLibrary.aar")
或implementation files("libs/MyLibrary.jar")
,两者都有相同的问题,
我还必须将这些依赖项添加到我的应用程序的build.gradle中,否则我将从这些依赖项中获得类的NoClassDefFoundError
。我认为这不是正确的方式,因为没有其他库需要应用程序将库的依赖项添加到应用程序的依赖项中。我错过了什么?
在库中,替换
implementation
通过
api
与您的应用程序共享库。您将不再需要在应用中添加相同的库