Enr*_*ico 5 android android-studio android-gradle-plugin
我正在尝试创建一个android库,moduleD,它取决于另一个库模块,而后者依赖于两个库模块.一切似乎都很好,但是ClassNotFoundException当我尝试在应用程序中使用库时,我得到了一个.
MyLibrary/
+-- moduleA
+-- src/main/java/
+-- com/example/a
+-- moduleB
+-- src/main/java/
+-- com/example/b
+-- moduleC
+-- src/main/java/
+-- com/example/b
+-- com/example/c
`-- MyMissingClass.java <-- MISSING
+-- moduleD
+-- src/main/java/
+-- com/example/b
Run Code Online (Sandbox Code Playgroud)
build.gradle(模块C)
dependencies {
compile project(':moduleA')
compile project(':moduleB')
}
Run Code Online (Sandbox Code Playgroud)
build.gradle(模块D)
dependencies {
compile project(':moduleC')
}
Run Code Online (Sandbox Code Playgroud)
在我的应用程序中,我调用ModuleD调用Module
为了完整起见,我在本地引用了最终的aars,但我不认为这是问题所在.在moduleD中解压缩classes.jar,我可以看到moduleD的类文件,但不能看到MyMissingClass.
build.gradle(在单独的应用程序项目中)
repositories {
...
flatDir {
dirs 'libs'
}
}
dependencies {
compile(name:'moduleB', ext:'aar')
}
Run Code Online (Sandbox Code Playgroud)
[1]:如何在android库gradle项目中包含依赖项? [2]:如何发送具有远程依赖项(gradle)的Android库(aar)?
build.gradle(应用程序)
dependencies {
compile(name:'moduleD', ext:'aar') {
transitive true
}
}
Run Code Online (Sandbox Code Playgroud)
这可能适用于外部依赖项(例如,通过maven,中央或本地可用),并且避免捆绑外部依赖项是有意义的,否则可以单独升级/降级以避免冲突或获取错误修正.但是,模块AC是项目的内部模块,现在只在这个库中使用.
是否可以为moduleD创建一个包含所有类的aar(或jar),并且实际上可以在应用程序中使用,因为库项目被分解为单独的模块?
| 归档时间: |
|
| 查看次数: |
1539 次 |
| 最近记录: |