如何从Android的库类访问应用程序模块类?
问题描述:
我在单个android项目中创建了两个模块。如何从Android的库类访问应用程序模块类?
应用模块(这是默认我的应用程序模块)
和另一位补充库模块。
现在app模块有很多java类。我想在库模块中访问应用程序模块的.Java class
。
模块应用在包某某一类DatabaseHelper
现在我想导入DatabaseHelper
类Library
模块。
DatabaseHelper
不是由Android认可。
问题,
是否有可能从一个应用模块到另一个模块导入类?
任何其他方式。
MYFILES
的build.gradle(APP)
compile project(':materialList')
setting.gradle
include ':app', ':Library'
答
没有,也没有办法。重新思考你的设计。可能将DatabaseHelper
转换为library
项目?
在你的设计中,将有app
模块和library
模块之间循环依赖。
目的上的其他模块是分离的代码完全独立的片,并将它们移动到外部位置。并在另一个模块中使用它们。
答
是否有可能从一个应用模块到另一个模块导入类?因为这将创建一个循环依赖
这将是不可能的。
但是存在能够在这种情况下被使用的图案:
- 定义数据类型:DatabaseHelperContent的
library
模块 - 在库模块实施者其中在定义一个接口DatabaseHelperI应该提供数据。
- 创建DatabaseHelperImpl类实现DatabaseHelperI接口,提供的数据(这个类是
app
模块中) - 初始化接口类ABC的实例,同时参考它在应用程序类,以使从数据该类可以动态传递给子模块。
在那里你可以指定接口的提供者 的@Module类与公共提供商在任何地方使用的注射数据这将成为甚至一些依赖注入框架 像匕首简单。
在应用程序中替换整个库模块是否好?这太需要头痛了。 –