当前位置: 首页 > 面试题库 >

如何为Android库项目指定多个源目录

李睿
2023-03-14
问题内容

我正在使用ant工具构建android库项目,我需要指定多个源目录。

我试图通过在ant.properties文件中添加这些行来指定多个源目录

source.dir=src:src2    
source.dir=src;src2

但是在两种情况下都无法生成,在两种情况下都生成了 .class ,但是在创建jar文件时却出现此错误

BUILD FAILED

C:\Program Files\Android\android-sdk\tools\ant\build.xml:681: The following error occurred while executing this line:

C:\Program Files\Android\android-sdk\tools\ant\build.xml:749:

C:\workarea\Android\Packages\test\src;src2 does not exist.

谁能告诉我如何在 ant.properties中* 指定 多个源目录 以构建 Android库项目 ***


问题答案:

我已经以棘手的方式解决了这个问题;这里是

要在具有多个源目录的android中构建库项目,请首先转到 ant.properties 文件(对于Linux,它是
build.properties )并添加 source.dir

    source.dir=first_source_dir ;second_source_dir ; third_source_dir

对于LIB项目, 蚂蚁 创建 罐子 编译库 的.class 从目录中的文件 斌/班out.dir 指定目录
ant.propertiesbuild.properties 文件;

创建 jar时*ant 会从 jar中 删除所有 .java 源文件,如果编码人员将任何 .java
源文件保留在 out.dir 目录中,并在 source.dir中 指定该目录, jar 文件可能会包含在
jar 中。
*

现在要删除这些 .javaant ,请使用以下命令转到 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 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>

现在建立您的项目;



 类似资料:
  • 标题中的问题。这里提出了一个类似的问题,当时唯一的解决办法是将项目发布到本地Maven存储库中。 这个问题在Android Studio 0.5中修复了吗(正如一些人所声称的)?在其发行说明中有一条声明说“支持模块内容根目录之外的源文件夹”。这是否意味着我们最终可以从项目文件夹外部导入库? 我试过文件- 编辑2:查看最新解决方案的接受答案(截至0.8。) 编辑: 我的项目目录结构只有一个模块,如下

  • Android 开源项目是针对各种各样具有不同外形的设备创建的开源软件栈。它的主要目的是为运营商、原始设备制造商(OEMs)和开发人员创造一个开放的软件平台。

  • 我尝试指定gradle库的两个不同的源集,并在项目中添加源集特定的依赖项。 这个想法是这样做的: 库build.gradle文件: 在项目A中,我希望包括主源集: 医生 问题2

  • 使用Jenkins进行多平台多分支构建。 我有多个多分支管道项目(每个平台一个,因为每个平台需要显着不同的构建步骤)。我有一个具有多个分支的代码存储库(这就是为什么多分支管道项目有意义)。 我希望每个多分支管道项目引用不同的Jenkinsfile,而不是所有人都试图使用文件名为“Jenkinsfile”的文件,该文件位于存储库的根目录中。 这个已解决的错误表明我应该能够做到这一点,但我找不到任何概

  • 我有多个java项目。这些项目正在使用Gradle创建jar、war和ear文件。在每个项目中,我都使用清单文件来维护元数据,如版本、日期-时间...为此,我在每个build.gradle文件中都包含了清单文件创建逻辑。 但在Gradle中有一个特性调用SharedManifest。我在主项目build.gradle脚本中定义了以下两个任务。但是在每个jar和war文件中都有gradle创建的默认

  • 问题内容: 有什么方法可以在Maven中的父项目的模块之间共享资源?例如,我想为一个多模块Maven项目中的所有模块指定一个log4j.properties文件。 通常,我使用Eclipse IDE通过选择常规项目来创建父项目,然后通过指定的包装将其转换为Maven项目。这将创建一个没有and等文件夹的“干净”项目结构。我不知道在这种情况下应该在哪里放置这样的共享资源。 EDIT1 :我想将公共资