我正在创建一个Android库,它有一个带有图像的assets
文件夹。
当我在另一个项目中使用它时,资产不会被复制。
其他人有这个问题吗?
答案 0 :(得分:34)
基于Gradle的new Android Build System支持库项目中的资产文件夹!
使用基于ANT的构建仍然无法实现:
图书馆项目不能包含原始资产。 (见docs)
但你可以
答案 1 :(得分:11)
可以通过小修复将资产放入生成的库jar中:
将“ custom_rules.xml ”放入您的库项目主页(build.xml附近):
<?xml version="1.0" encoding="UTF-8"?>
<project name="custom_rules">
<target name="-post-compile" if="${project.is.library}">
<echo>Post Compile: add assests from ${asset.absolute.dir} to ${out.library.jar.file}</echo>
<jar destfile="${out.library.jar.file}" update="true">
<zipfileset dir="${asset.absolute.dir}" prefix="assets" excludes="**/*.java ${android.package.excludes}"/>
</jar>
</target>
这会将您的库资源打包到您生成的库jar中。因此,这些资产将包含在您的应用程序的最终.apk中。
在OSX上检查Android SDK工具修订版21.1.0
答案 2 :(得分:2)
从Eclipse和ANT,您可以从多个项目中引用相同的“assets”文件夹。 这允许源树具有资产文件的单个副本,但将它们包含在多个APK中。
请参阅Android: targeted res folders for debugging in eclipse
从ProjectA我可以从ProjectB引用.. \ ProjectA \ Assets。 在Eclipse上(至少在Windows下,我还没有尝试过Linux),我必须创建一个新的变量来引用.. \ ProjectA并在“链接文件夹位置”中使用该变量。如果我试图在“链接文件夹位置”中使用“..”,eclipse将不接受它。
答案 3 :(得分:1)
对于使用 IntelliJ IDEA 的用户,您可以更改应用程序模块的打包设置以包含从属资产。请注意,这是在IntelliJ社区版的14.0.2版本上完成的。我的主应用程序模块现在从我的库项目的assets文件夹继承文件,就好像它们在主项目中一样!
右键单击应用程序模块&gt;打开模块SEttings。选择模块上的Android树节点&gt;包装标签。选中“将资源从依赖项纳入APK”
注意:我从未使用Android Studio,但我猜在该应用程序中有相似的设置。
答案 4 :(得分:0)
首先创建android lib项目,创建后关闭。这将'prevert autobuild
在windows上使用cmd终端android命令是批处理文件
向路径添加工具 C:\ Users \用户user_bss&GT; PATH =%PATH%; C:\ ADT-束 - 窗口x86-20140321 \ SDK \工具
为ant生成build.xml android更新项目-p C:\ Users \ user_bss \ Documents \ Workspace \ SDKAdvanced -n SDKAdvanced
记事本custom_rules.xml添加上面的代码不要忘记结束标记
运行“ant debug”或“ant release”来构建
你会在bin目录中看到classes.jar这是你的压缩包