4

我有一个依赖于 Android 库项目 B 的 android 应用程序项目 A。当我在 Eclipse 中导入这两个项目时,我注意到 Eclipse Builder(可能是由于 ADT 插件),库项目被编译和构建为b.jar并存储在bin\项目B的文件夹中。它在A的类路径中被引用为b.jar。

但是,在使用 ant 命令构建它时,ant debug库项目 B 被编译为classes.jar.

有没有办法将此文件重命名为.jar?我尝试在SDK build.xml中重命名它,但是项目A似乎没有解析B中定义的类。另外,B的测试项目失败,因为Android dex编译器试图在里面搜索文件classes.jar库项目的bin\文件夹。

谢谢,

4

4 回答 4

4

在您的项目主管中创建一个 custom_rules.xml 文件。

<?xml version="1.0" encoding="UTF-8"?>
<project name="custom_rules">
    <target name="-post-compile">
    <echo level="info">Renaming jar filename</echo>
    <move file="${out.library.jar.file}"tofile="${out.absolute.dir}/${ant.project.name}.jar"/>
    </target>
</project>
于 2014-05-21T19:47:25.637 回答
1

重命名jar文件的一种方法是将文件添加custom_rules.xml到项目中,并覆盖正确的属性:

<?xml version="1.0" encoding="UTF-8"?>
<project name="custom_rules">

  <property name="out.library.jar.file" location="bin/b.jar" />

</project>

如果您在 SDK 的 中查找此属性名称build.xml,您就会明白为什么会这样。

注意:我没有检查custom_rules.xmlAndroid 支持哪个 API 级别。

于 2014-04-09T08:51:54.650 回答
0

我在库项目中添加了一个额外的构建器:/bin/cp bin/classes.jar bin/${project_name}.jar

于 2013-05-20T14:58:19.193 回答
0

最简单的方法是在 ant.properties 中添加一行:

out.library.jar.file=bin/b.jar

但是,如果项目 B 被项目 A 在 project-A/ant.properties 中引用,例如:

android.library.reference.1=/path/to/project-B

那么编译器可能会抱怨它找不到项目 B 中定义的符号。

于 2015-04-21T09:36:43.330 回答