我必须创建一个库,我将在jar文件中导出到客户端。有没有办法用它中的资源创建一个jar?
Google adMob有这样一个jar,其中包含资源文件,如R $ layout.class。 This page描述了一些方法,但我无法准确理解如何使用上述方法将库项目导入应用程序。
答案 0 :(得分:80)
这是你最接近的:
步骤1:创建一个常规的Android库项目,并使其正常工作。
步骤2:将该Android库项目复制到另一个目录中。
步骤3:从原始Android库项目中编译的Java类创建JAR,并将该JAR放在您在步骤#2中创建的副本的libs/
目录中。您应该可以手动在此JAR上运行ProGuard,但我还没有尝试过。
步骤4:删除复制的库项目的src/
目录中的所有内容,留下并清空src/
目录。
步骤#5:压缩或以其他方式分发复制的Android库项目。
这将为您提供一个Android图书馆项目,如Play服务项目,资源可用,但源代码不是。
更新:现在更好的方法是将您的库项目打包为AAR,这是Android本地创建可编译代码和可用资源的可重用工件的方法。目前(2014年7月),Gradle for Android,Android Studio和android-maven-plugin
可以创建和使用AAR。
答案 1 :(得分:21)
这有效!
这将适用于所有资源。感谢大家。为你的回应
答案 2 :(得分:13)
按照以下步骤获取库的可分发jar(已验证库项目没有外部依赖性):
Ctr+Shift+O
(在Windwows / Linux上)或Cmd+Shift+O
(在Mac上)以解决添加的库中的所有导入依赖项。在遇到任何问题时进行评论。
答案 3 :(得分:3)
使用adt 22.2.1进行测试
答案 4 :(得分:2)
您无法将资源文件打包到jar中。您可以将项目导出为库项目。
您导出的实用程序类不引用android中的资源,即纯Java类作为jar文件。
检查以下链接
http://developer.android.com/tools/projects/index.html
使您的项目成为图书馆项目
右键单击您的项目。转到属性。选择Android。确保选中Is Library。
在你的android项目中引用库项目
右键单击您的项目。转到属性。选择Android。单击添加。浏览和图书馆项目。
从文档引用
库项目与标准Android应用程序项目的不同之处在于,您无法将其直接编译为自己的.apk并在Android设备上运行它。同样,您无法将库项目导出到自包含的JAR文件,就像对真正的库一样。相反,您必须通过引用依赖应用程序中的库并构建该应用程序来间接编译库。
答案 5 :(得分:1)
这是一个使用ant的简单方法,在Volley源代码中找到了它。将以下代码添加到custom_rules.xml,然后使用ant jar
<?xml version="1.0" encoding="UTF-8"?>
<project name="volley-rules" default="help">
<!-- A rule to generate the JAR for inclusion in an Android
application. Output file will be bin/volley.jar -->
<target name="jar" depends="-compile">
<jar destfile="bin/volley.jar"
basedir="bin/classes" />
</target>
</project>
答案 6 :(得分:1)
根据最新的Android Studio v1.2,它就像蛋糕一样简单。 已经通过this link
上的屏幕截图回答了完整的解决方案答案 7 :(得分:0)
使用Eclipse ADT v22.6.2,您可以通过单击File-&gt; Export-&gt; Java-&gt; Jar File导出jar,选择目录和目标保存位置。