我以一种棘手的方式解决了这个问题;这里是
要在具有多个源目录的 android 中构建 library-project,首先转到ant.properties文件(对于 linux,它是build.properties)并添加source.dir
source.dir=first_source_dir ;second_source_dir ; third_source_dir
对于 lib 项目,ant从ant.properties或build.properties文件中指定的out.dir目录的bin/classes目录创建带有编译的.class文件 的jar库;
在创建 jar时,ant会从jar中删除所有.java源文件,如果 coder 将任何.java源文件保存在out.dir目录中,则这些源文件可能包含在jar中,并在source.dir中指定该目录;
现在要删除那些.java源蚂蚁,请使用以下命令转到source.dir目录
<property name="source.absolute.dir" location="${source.dir}" />
dir="${source.absolute.dir}"
使用此命令,蚂蚁实际上试图进入目录
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标记中的最后一个文件集标记
<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>
现在构建你的项目;