我正在开发一个包含字符串和布局资源的Android库。
如何在不创建Activity类的情况下获取它们?
我不想访问“主项目”资源,我读了很多关于这个的问题:P,我在模块里面的“普通类”,我需要模块资源。
答案 0 :(得分:2)
我能够像往常一样通过我的库的内部来寻找资源来创建一个可重用的自定义对话框来实现这一目标:
customView = inflater.inflate(R.layout.fragment_dialog, container, false);
这里的问题似乎是你如何构建/导入这个库。我认为默认情况下,将项目标记为库将其打包为jar
文件。但是,我能够通过打包为Android应用程序资源(aar
)文件来获取这些资源。如果您比较这些文件的结构,您会发现aar
将包含res/
目标下的所有内容,而不仅仅是类文件(如jar
中所示)。< / p>
我正在使用maven,所以我使用了这样构建我的包:
<groupId>com.mycompany</groupId>
<artifactId>my-library</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>aar</packaging>
<name>My Library</name>
然后,在将我的库导入项目时,我确保指定type
:
<dependency>
<groupId>com.mycompany</groupId>
<artifactId>my-library</artifactId>
<version>1.0-SNAPSHOT</version>
<type>aar</type>
</dependency>
Gradle也可以这样做 - 如有必要,您可以指定aar
作为存档类型:
compile 'my.company:my-library:1.0-SNAPSHOT@aar'