我有一个SDK项目在gradle中引用很多依赖项。我必须要求SDK用户在他们的项目中使用SDK时添加这些依赖项。问题是,每次我添加一些新的依赖项或用新的依赖项替换当前的依赖项时,我都必须要求用户进行更改,这不是一个好习惯。我的看法。有没有办法捆绑.aar中的所有依赖项。我使用以下代码生成工件文件。
uploadArchives{
repositories.mavenDeployer {
def deployPath = file(getProperty('aar.deployPath'))
repository(url: "file://${deployPath.absolutePath}")
pom.project {
groupId 'myPackageName'
artifactId 'wingoku-io'
version "0.0.6"
}
}
这些是我的依赖项:
dependencies {
compile 'com.github.nkzawa:socket.io-client:0.5.0'
compile 'com.android.support:cardview-v7:21.+'
compile 'de.greenrobot:eventbus:2.4.0'
}
修改
我在uploadArchives方法中添加了以下方法。工件文件的大小已经增加,但是当我在app项目中使用.aar文件时,它无法找到文件。
uploadArchives{
repositories.mavenDeployer {
def deployPath = file(getProperty('aar.deployPath'))
repository(url: "file://${deployPath.absolutePath}")
pom.project {
groupId 'myPackageName'
artifactId 'wingoku-io'
version "0.0.6"
}
**configurations.all {
transitive = true
}**
}
更新
我尝试了以下代码,因为@aar产生错误(无法在jcenter()上找到xx.xx.xx.aar)。这仍然失败,d
compile ('com.github.nkzawa:socket.io-client:0.5.0'){
transitive=true
}
compile ('com.android.support:cardview-v7:21.+@aar'){
transitive=true
}
compile ('de.greenrobot:eventbus:2.4.0'){
transitive=true
}
Dalvik对所有课程发出警告:
dalvikvm:课程链接' Lio / wingoku / sdk / Fetch $ 6;'失败
它最终抛出异常 ClassDefNotFound
答案 0 :(得分:0)
关于你的编辑
configurations.all {
transitive = true
}
我不确定它有什么影响。
我认为你应该这样写:
dependencies {
compile 'com.github.nkzawa:socket.io-client:0.5.0'{
transitive=true
}
compile 'com.android.support:cardview-v7:21.+@aar'{
transitive=true
}
compile 'de.greenrobot:eventbus:2.4.0'{
transitive=true
}
}
它只是说