我创建了一个库,这个库使用另一个外部库(只有一个)。
这是我的库的配置:
apply plugin: 'com.android.library'
android {
compileSdkVersion 26
defaultConfig {
minSdkVersion 15
targetSdkVersion 26
versionCode 1
versionName "1.0"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
implementation fileTree(include: ['*.jar'], dir: 'libs')
compile ('com.github.Paroca72:sc-gauges:3.0.1') {
transitive=true
}
}
使用gradle - >:library - > assembleRelease导出库,如.aar。不使用“import .JAR / .AAR package”将库包含在新项目中,并将其包含在“模块依赖项”中。
在编码阶段,我没有错误,但是当我尝试启动应用程序时,我遇到了这种异常:
Caused by: java.lang.ClassNotFoundException: Didn't find class "com.sccomponents.codes.gauges.ScArcGauge" on path: DexPathList[[zip file "/data/app/com.test.test-oKxgn-etFOgh1n6SqKQU5Q==/base.apk", zip file "/data/app/com.test.test-oKxgn-etFOgh1n6SqKQU5Q==/split_lib_dependencies_apk.apk", zip file "/data/app/com.test.test-oKxgn-etFOgh1n6SqKQU5Q==/split_lib_slice_0_apk.apk", zip file "/data/app/com.test.test-oKxgn-etFOgh1n6SqKQU5Q==/split_lib_slice_1_apk.apk", zip file "/data/app/com.test.test-oKxgn-etFOgh1n6SqKQU5Q==/split_lib_slice_2_apk.apk", zip file "/data/app/com.test.test-oKxgn-etFOgh1n6SqKQU5Q==/split_lib_slice_3_apk.apk", zip file "/data/app/com.test.test-oKxgn-etFOgh1n6SqKQU5Q==/split_lib_slice_4_apk.apk", zip file "/data/app/com.test.test-oKxgn-etFOgh1n6SqKQU5Q==/split_lib_slice_5_apk.apk", zip file "/data/app/com.test.test-oKxgn-etFOgh1n6SqKQU5Q==/split_lib_slice_6_apk.apk", zip file "/data/app/com.test.test-oKxgn-etFOgh1n6SqKQU5Q==/split_lib_slice_7_apk.apk", zip file "/data/app/com.test.test-oKxgn-etFOgh1n6SqKQU5Q==/split_lib_slice_8_apk.apk", zip file "/data/app/com.test.test-oKxgn-etFOgh1n6SqKQU5Q==/split_lib_slice_9_apk.apk"],nativeLibraryDirectories=[/data/app/com.test.test-oKxgn-etFOgh1n6SqKQU5Q==/lib/x86, /system/lib, /vendor/lib]]
提到包含在我自己的库中的外部库“com.sccomponents.codes.gauges.ScArcGauge”。
怎么了?
我正在使用Android Studio(最新版本)
最有可能当你通过Android Studio包含你的库时,你最终得到了类似的东西
compile 'yourlibrary":1.0.0@aar'
所以这意味着只有aar会被吸进而不是你的依赖。您需要将其更改为
compile ('yourlibrary":1.0.0@aar'){ transitive=true }
请按照以下步骤操作。
可能是因为它没有在运行时添加库。