【发布时间】:2017-09-07 10:09:46
【问题描述】:
我自己的库在 build.gradle 中定义
dependencies {
api 'com.android.support:support-v4:26.0.1'
api 'com.squareup.okhttp3:okhttp:3.9.0'
}
当我将库包含到同一个项目的另一个模块中时:
implementation project(':myLib')
support-v4 和 okhttp 在这个其他模块中可用
但是当我通过外部依赖将 myLib 包含到另一个项目中时
implementation 'com.personnal.library:myLib:1.2.4'
support-v4 和 okhttp 在我使用“api”而不是“implementation”时在其他模块中不可用
我得到错误:包 android.support.v4.app 不存在
项目中如何导出myLib依赖?
这是我的库 build.gradle
buildscript {
repositories {
maven { url 'http://jenkins.greaturl.com:8080/nexus/content/groups/public/' }
}
dependencies {
classpath 'com.github.dcendents:android-maven-gradle-plugin:1.5'
}
}
apply plugin: 'com.android.library'
apply plugin: 'com.github.dcendents.android-maven'
android {
compileSdkVersion 26
buildToolsVersion "26.0.1"
defaultConfig {
minSdkVersion 16
targetSdkVersion 26
consumerProguardFiles 'proguard-lib.pro'
}
}
configurations {
deployerJars
}
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
api "com.android.support:support-v4:26.0.1"
api 'com.squareup.okhttp3:okhttp:3.9.0'
}
def groupName = 'com.personnal.library'
def versionName = '1.2.4'
def artifactName = 'myLib'
group = groupName
version = versionName
project.archivesBaseName = artifactName
uploadArchives {
repositories {
mavenDeployer {
configuration = configurations.deployerJars
repository(url: 'http://jenkins.greaturl.com:8080/nexus/content/repositories/releases')
snapshotRepository(url: 'http://jenkins.greaturl.com:8080/nexus/content/repositories/snapshots')
pom.artifactId = artifactName
pom.groupId = groupName
pom.version = versionName
}
}
}
还有我的项目 build.gradle
apply plugin: 'com.android.application'
android {
compileSdkVersion 26
buildToolsVersion "26.0.1"
defaultConfig {
applicationId "com.example.test"
minSdkVersion 16
targetSdkVersion 26
versionCode 1
versionName "1.0"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'com.personnal.library:myLib:1.2.4'
}
【问题讨论】:
-
显示你的
build.gradle -
完成@IntelliJAmiya
-
你能解决这个问题吗? @JérémyThil
-
不,仍在寻找解决方案...@roy_lennon
-
对我来说的解决方案是在 2.0 版上使用 android-maven-gradle-plugin 用于 gradle 4.4,如下所列 github.com/dcendents/android-maven-gradle-plugin