我以一种棘手的方式解决了这个问题;这里是
要在具有多个源目录的 android 中构建库项目,首先转到 ant.properties 文件(对于 linux,它是 build.properties)并添加 source.dir
source.dir=first_source_dir ;second_source_dir ; third_source_dir
对于 lib 项目,ant 使用从目录 bin/classes 编译的 .class 文件创建 jar 库> out.dir 目录在 ant.properties 或 build.properties 文件中指定;
在创建 jar 时,ant 会从 jar 中删除所有 .java 源文件,这些源文件可能会包含在内如果 coder 将任何 .java 源文件保存在 out.dir 目录中,则使用 jar,并在 source.dir;
现在要删除那些 .java 源 ant 使用以下命令转到 source.dir 目录
<property name="source.absolute.dir" location="${source.dir}" />
dir="${source.absolute.dir}"
用这个命令ant实际上试图去目录
cd <your_project_root_dir>/first_source_dir ;second_source_dir ; third_source_dir
不存在的...
解决方案:
步骤1.首先确保你的源目录(source.dir)和构建目录(out.dir)是不同的;
步骤 2. 转到 C:\Program Files\Android\android-sdk\tools\ant 打开 build.xml
然后转到 jar 标签
<jar destfile="${out.library.jar.file}">
<fileset dir="${out.classes.absolute.dir}"
includes="**/*.class"
excludes="${project.app.package.path}/R.class ${project.app.package.path}/R$*.class ${project.app.package.path}/Manifest.class ${project.app.package.path}/Manifest$*.class ${project.app.package.path}/BuildConfig.class"/>
<fileset dir="${source.absolute.dir}" excludes="**/*.java ${android.package.excludes}" />
</jar>
现在注释或删除 jar 标签中的最后一个 fileset 标签
<jar destfile="${out.library.jar.file}">
<fileset dir="${out.classes.absolute.dir}"
includes="**/*.class"
excludes="${project.app.package.path}/R.class ${project.app.package.path}/R$*.class ${project.app.package.path}/Manifest.class ${project.app.package.path}/Manifest$*.class ${project.app.package.path}/BuildConfig.class"/>
<!--fileset dir="${source.absolute.dir}" excludes="**/*.java ${android.package.excludes}" /-->
</jar>
现在构建您的项目;