我看到类似的问题,但未找到接受的答案。 问题 - 我有我自己的一些小函数的android库。 我的图书馆使用他人 - f.e. Hawk(没有sql数据库)。 我的图书馆gradle文件:Android aar库不包含依赖关系
apply plugin: 'com.android.library'
buildscript {
repositories {
maven { url "https://www.jitpack.io" }
}
}
android {
compileSdkVersion 26
buildToolsVersion "26.0.1"
defaultConfig {
minSdkVersion 18
targetSdkVersion 26
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'library.pro'
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
exclude group: 'com.android.support', module: 'support-annotations'
})
compile 'com.android.support:appcompat-v7:26.0.2'
compile 'com.github.orhanobut:hawk:1.23'
testCompile 'junit:junit:4.12'
}
图书馆工作正常。如果我在另一个项目中使用它作为项目 - 它也可以工作。但是当我生成*.aar
文件(与gradle
- >assembleRelease
)并包括到单独的项目 - 它失败。项目只看到我的图书馆的类。 Hawk com.orhanobut.hawk包和ofc其他(如果我将使用)不可见。所以ClassNotFoundException
来了。 如果我删除
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'library.pro'
结果并没有改变。 我试图将下面一行添加到proguard的文件(library.pro)
-keep class com.orhanobut.hawk {public *;}
-keep class com.orhanobut.hawk.* {public *;}
结果是相同的。
所以我有两个问题: 1 - 我该怎么做才能让我的主项目看到我的图书馆的第三方依赖关系? 2 - 是可以混淆我的图书馆的代码(只有我的,而不是依赖)?
奥奇,你能提供一个帮助链接吗? – TooLazy
@TooLazy这里一个帖子:https://medium.com/prismapp/publishing-android-library-to-bintray-ba588184b690 –