标签: build

Android 构建系统:如何从 .t​​ar 文件中包含预构建文件?

我正在构建一个定制的 Android 系统 (JellyBean)。

我有一个项目(来自上游)包含一个 .tar 文件,它应该在构建时解压缩,它的内容应该被复制到结果目录树中的某个位置。我应该如何构建makefile来做到这一点?

我尝试了以下方法:

1) 使用 un-tar 指令编写 Android.mk(在带有 tar 的 git 中)并使用“PRODUCT_COPY_FILES += ...”

这不起作用,因为 PRODUCT_COPY_FILES 不能在 Android.mk 中使用

2) 使用 untar 说明和一些包含在 AndroidProducts.mk 中的产品定义 mk 文件编写 Android.mk,其中包含“PRODUCT_COPY_FILES += ...”

这不起作用,因为解压缩发生在“PRODUCT_COPY_FILES += (ls /untared/dir/*)”之后,因此 PRODUCT_COPY_FILES 结果为空。

3) 编写产品定义 mk 文件做 untar 然后“PRODUCT_COPY_FILES += ...”

这有效但不是很好,因为构建系统在多个位置包含此文件并且解压缩发生多次(~10)这会减慢构建速度并且不好......

android makefile build tar android-source

1
推荐指数
1
解决办法
4841
查看次数

在 linux 上构建 ghostscript 时出错

我正在尝试在我的托管 linux 机器上构建 Ghostscript (v 9.06),以便我可以操作 PDF 文件。使用./configureand一切正常make,但随后出现以下错误:

../gs/base/x_.h:135:29: error: X11/Intrinsic.h: No such file or directory
Run Code Online (Sandbox Code Playgroud)

之后,我得到了一个带有有趣â字符的错误列表,如下所示:

../gs/base/gdevx.c:1138: error: âgx_device_Xâ has no member named âtextâ
Run Code Online (Sandbox Code Playgroud)

这里有什么问题,有什么解决办法?我认为这是一个符号链接问题,所以我检查了我的 X11 目录所在的位置并运行以下命令:

 ln -s X11 /usr/include/X11
Run Code Online (Sandbox Code Playgroud)

我又跑make了,但没有区别。有任何想法吗?

编辑

这是错误的前几行……其余的几乎都一样:

../gs/base/x_.h:135:29: error: X11/Intrinsic.h: No such file or directory
../gs/base/x_.h:136:30: error: X11/StringDefs.h: No such file or directory
../gs/base/x_.h:137:25: error: X11/Shell.h: No such file or directory
In file included from ../gs/base/gdevx.c:33:
../gs/base/gdevx.h:30: error: expected â=â, â,â, â;â, âasmâ or …
Run Code Online (Sandbox Code Playgroud)

x11 installation build configure ghostscript

1
推荐指数
1
解决办法
2696
查看次数

修改/检测其字节码后如何重建apk?

作为我研究的一部分,我需要检测任何给定 .apk 文件的 dalvik 字节码,并使用检测过的字节码获取工作的、修改过的 .apk。

我在 Windows 7 下用 Java 1.6 编程。

输入

  • 原始的 .apk 文件,带有原始的、未更改的classes.dexdalvik 字节码。
  • classes.dex.apk的检测字节码(是的,我们假设我们已经检测了字节码)。

期望输出

  • 带有检测classes.dex字节码而不是原始字节码的 .apk 文件。

问题陈述

从 Java 源代码获取所需输出的最直接方法是什么?

android build apk

1
推荐指数
1
解决办法
4093
查看次数

构建助手插件不解析项目版本

我有一个项目,我需要在构建清单文件时分解版本号并访问它的组件。在做了一些搜索之后,我找到了 build-helper-maven-plugin 并认为我的问题已经解决了。我将插件添加到主 POM,如下所示。

  <plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>build-helper-maven-plugin</artifactId>
    <version>1.7</version>
    <executions>
      <execution>
        <phase>validate</phase>
        <id>parse-version</id>
        <goals>
          <goal>parse-version</goal>
        </goals>
        <configuration>
            <propertyPrefix>parsedVersion</propertyPrefix>
        </configuration>
      </execution>
    </executions>
  </plugin>
Run Code Online (Sandbox Code Playgroud)

此时的项目版本是 3.0.0-SNAPSHOT。我想查看所有部分(尽管在最终版本中我可能不会全部使用它们),因此我将这些行添加到我的清单文件中。

<value name="majorVersion">${parsedVersion.majorVersion}</value>

<value name="minorVersion">{$parsedVersion.minorVersion}</value>

<value name="incrementalVersion">${parsedVersion.incrementalVersion}</value>

<value name="versionQualifier">${parsedVersion.qualifier}</value>

<value name="parsedBuildNumber">${parsedVersion.buildNumber}</value>
Run Code Online (Sandbox Code Playgroud)

构建后我得到了这个。

<value name="majorVersion">0</value>

<value name="minorVersion">{$parsedVersion.minorVersion}</value>

<value name="incrementalVersion">0</value>

<value name="versionQualifier">3.00.0-SNAPSHOT</value>

<value name="parsedBuildNumber">0</value>
Run Code Online (Sandbox Code Playgroud)

值标签实际上是一个 XML 标签,清单文件中有一个结束值标签,我不得不删除它们,因为它们弄乱了显示。

所以增量版本似乎是正确的,虽然我不是很自信,因为主要版本不正确,它没有找到次要版本,并且限定符作为整个版本号返回,而不仅仅是 SNAPSHOT 部分我曾预料到。我可以看到构建号为零的地方是正确的,因为我们没有 Maven 认为的构建号。

关于为什么版本号似乎没有解析的任何想法?我是否错误地实现了这个插件?

谢谢史蒂夫

parsing build version helper maven

1
推荐指数
1
解决办法
9546
查看次数

操作 Android build.prop 文件

我正在尝试操作 Android API 级别 17 build.prop文件并对设备的 MODEL、ID、FINGERPRINT 值等进行一些更改。我操作了system.img文件,当文件中的字符数在更改后仍然相同时,它可以完美运行,但是当我添加或多或少时它会崩溃。

问题:有没有办法检查system.img文件的字符数
?如何成功操作build.prop文件?
谢谢你。

android system build android-emulator

1
推荐指数
1
解决办法
3513
查看次数

一个没有 Android 项目的 Android NDK 库如何

我希望能够使用 android ndk-build 脚本构建一个共享库,但由于某种原因,我收到了一堆错误:

# I have Application.mk and Android.mk in the current folder
ndk-build -C . 
Android NDK: Could not find application project directory !    
Android NDK: Please define the NDK_PROJECT_PATH variable to point to it.  
Run Code Online (Sandbox Code Playgroud)

有没有办法只用源文件和头文件来构建Android共享库?$$\int$$

android build android-ndk

1
推荐指数
1
解决办法
3581
查看次数

Gradle 是否在内部使用 Ivy?

在尝试收集有关 Gradle 的初始信息时,我阅读了这篇文章:

http://techblog.chegg.com/2011/04/29/gradle-a-better-way-to-build/

它声称

“在内部,Gradle 使用 Ivy 来管理依赖项”

这样对吗?

我认为 Ivy、Maven 和 Gradle 是完全不同的依赖管理工具。

谢谢。

build ivy gradle

1
推荐指数
1
解决办法
509
查看次数

Gradle 构建 - 非 Java 项目

我的项目在源代码中有一个 .zip 文件,我想将其放入文件夹 1.1.0/deployment 下的 appserver.zip 文件中。此 .zip 文件再次捆绑在 .tar 文件中。

注意:此项目不是 JAVA/Groovy 项目,即没有 Java 程序或 groovy 程序

以下是我的 build.gradle,它正在创建正确的 .zip(其中包含正确的文件夹/源 .zip 文件)和包含 appserver.zip 的 .tar 文件:

// Let say $projName, $folderArtifactoryVersion or etc variables used in the following script - are set correctly to a valid value.


task createZipFile( type: Zip) {
  // Create artifact directory
  def dirName = "build/folderDist"
  def dirDist = new File( dirName )
  dirDist.mkdirs()

  destinationDir dirDist
  archiveName "appserver.zip"

  println ''
  println 'bundleArchiveName: ' + archiveName …
Run Code Online (Sandbox Code Playgroud)

java compilation build task gradle

1
推荐指数
1
解决办法
3294
查看次数

C# Visual Studio 不只在当前项目中构建

我有一个我一直在编写的程序,我通常按 F6 构建,然后按 CTRL + F5 运行该程序。我一定是遇到了什么问题,因为在我当前的项目中,当我按 F6 时没有任何更新。我在输出中收到以下消息:

========== 构建:0 成功,0 失败,1 最新,0 跳过 ============

我已经将所有这些代码复制并粘贴到一个新项目中,然后按 F6 和 CTRL + F5 构建并运行我的程序,没有问题,按我的预期更新我的代码,这让我相信这是一个项目特定的问题,而不是 Visual工作室特定问题,因为它只影响这个项目。

知道我必须击中导致此问题的原因以及我可以做些什么来解决它吗?我显然有一个解决办法,但这不是我第一次这样做,我很想知道如何修复它,这样我就不必复制我的所有代码并重新创建每次都从头开始。

作为参考,我已经尝试将我的键盘快捷键重置为默认值(尽管我不认为会是这种情况,因为它适用于其他项目,除非键盘快捷键是特定于项目的,我对此表示怀疑)。我还在 BUILD > Configuration Manager 下进行了检查,以确保选中了 Build。这是我在网上搜索此问题时遇到的仅有的两种解决方案,尽管我在搜索时可能使用了错误的关键字。

我感谢任何人可以提供的任何见解。先感谢您!

c# compilation build visual-studio-2012

1
推荐指数
1
解决办法
1万
查看次数

降低 minSdkVersion -- 需要警告信息

新 Android Studio 项目的新手,即将发布给 Beta 版测试人员。我开始时将 minSdkVersion 设置为 19。现在,我想降低它。

因此,我降低了应用程序 build.gradle 文件中的 minSdkVersion。我使用了 Clean,并重建了。它同步并在我的新设备上运行。但是,没有警告!即使我将 minSdkVersion 设置为 8。我知道我使用了一些旧 SDK 不支持的功能。我从其他测试中知道,当您尝试使用最初设置的 minSdkVersion 不支持的功能时,会弹出警告消息。我现在需要这些消息,知道要重新编码什么。

我错过了什么?

sdk android build version gradle

1
推荐指数
1
解决办法
176
查看次数