2

扩展我之前的问题Aapt 无法正常工作 - 无法在新项目上生成 R ID

我在 32 位机器上安装了新的 Ubuntu Server 12.04,之后我下载了 Android SDK 并更新了。然后我从命令行创建了新项目:

gyver@Gyver:~/tmp$ android create project 
    -t android-17 -p test -k com.example.test -a HomeActivity

在这一点上没有问题。然后我尝试用Ant编译:

gyver@Gyver:~/tmp/test$ ant clean debug install
Buildfile: /home/gyver/tmp/test/build.xml

-check-env:
 [checkenv] Android SDK Tools Revision 22.0.5
 [checkenv] Installed at /opt/android-sdk

-setup:
     [echo] Project Name: HomeActivity
  [gettype] Project Type: Application

-pre-clean:

clean:
   [delete] Deleting directory /home/gyver/tmp/test/bin
[getlibpath] Library dependencies:
[getlibpath] No Libraries
   [subant] No sub-builds to iterate on

-set-mode-check:

-set-debug-files:

-check-env:
 [checkenv] Android SDK Tools Revision 22.0.5
 [checkenv] Installed at /opt/android-sdk

-setup:
     [echo] Project Name: HomeActivity
  [gettype] Project Type: Application

-set-debug-mode:

-debug-obfuscation-check:

-pre-build:

-build-setup:
[getbuildtools] Using latest Build Tools: 18.0.1
     [echo] Resolving Build Target for HomeActivity...
[gettarget] Project Target:   Android 4.2.2
[gettarget] API level:        17
[gettarget] WARNING: No minSdkVersion value set. Application will install on all Android versions.
     [echo] ----------
     [echo] Creating output directories if needed...
    [mkdir] Created dir: /home/gyver/tmp/test/bin
    [mkdir] Created dir: /home/gyver/tmp/test/bin/res
    [mkdir] Created dir: /home/gyver/tmp/test/gen
    [mkdir] Created dir: /home/gyver/tmp/test/bin/classes
    [mkdir] Created dir: /home/gyver/tmp/test/bin/dexedLibs
     [echo] ----------
     [echo] Resolving Dependencies for HomeActivity...
[dependency] Ordered libraries:
     [echo] ----------
     [echo] Building Libraries with 'debug'...
   [subant] No sub-builds to iterate on

-code-gen:
[mergemanifest] Merging AndroidManifest files into one.
[mergemanifest] Manifest merger disabled. Using project manifest only.
     [echo] Handling aidl files...
     [aidl] No AIDL files to compile.
     [echo] ----------
     [echo] Handling RenderScript files...
[renderscript] No RenderScript files to compile.
     [echo] ----------
     [echo] Handling Resources...
     [aapt] Generating resource IDs...

BUILD FAILED
/opt/android-sdk/tools/ant/build.xml:649: The following error occurred while executing this line:
/opt/android-sdk/tools/ant/build.xml:690: null returned: 132

Total time: 3 seconds
gyver@Gyver:~/tmp/test$

一个错误,目前还不清楚是什么问题。我查看了 build.xml 发现 Ant 正在调用aapt,所以我尝试直接启动它

/opt/android-sdk/build-tools/18.0.1/aapt package -f -m 
-M /home/gyver/tmp/test/bin/AndroidManifest.xml 
-S /home/gyver/tmp/test/bin/res 
-S /home/gyver/tmp/test/res 
-I /opt/android-sdk/platforms/android-17/android.jar 
-J /home/gyver/tmp/test/gen --generate-dependencies 
-G /home/gyver/tmp/test/bin/proguard.txt

结果

Illegal instruction (core dumped)

有办法解决吗?Aapt 在 64 位机器上似乎很好,这个 32 位服务器是我无法构建项目的唯一情况

4

2 回答 2

2

我对rev有同样的问题。18.0.1 适配。我认为这是一个错误并在http://code.google.com/p/android/issues/detail?id=58663下打开了一个错误报告

转速。17 aapt 对我有用,所以它可能是使用 rev 的临时解决方案。17 构建工具。

于 2013-08-08T14:54:01.453 回答
0

我可以确认 aapt 中的这个错误仍然存​​在于 19.0.3 版的 android 构建工具中。我有两台机器运行最新的 Android SDK 和 NDK。我正在使用 ANT。我的项目在我的笔记本电脑上以调试和发布模式成功构建,但 aapt 失败,桌面开发框中仅显示“非法指令”消息,除非我在这里使用建议。具体来说,我将 aapt 的 17.0.0 版二进制文件复制到构建工具 19.0.3 的目录中。这是一个丑陋的黑客,但我现在可以在我的桌面机器上成功构建项目。因此,如果您想在 32 位 Pentium 单处理器上运行最新的构建工具(19.0.3),您可以将 19.0.3 aapt 降级到 17.0.0 aapt,然后您就可以构建项目了。具体来说:aapt(所有版本)在我的 ACER Travelmate 6460 上工作,这是一个 32 位双处理器,运行 Intel Core2 cpu,T2700,运行 2 ghz,使用 Phoenix BIOS 1.09 版。版本。17 aapt 有效,但 vers。18 和 19,在我的 32 位华硕机器上失败并显示“非法指令”消息,英特尔奔腾 4,运行 2400 mhz,Award Bios rev。1004. 总内存为 1.3 GB。
一些错误报告建议内存限制或错误的 .png 文件是原因,但事实并非如此。看起来有些不明智的家伙刚刚从最近构建的 aapt 中删除了 32 位单处理器代码,从而破坏了运行 Linux 的 32 位 Intel 机器的 aapt。两个平台都运行 Fedora Linux,内核版本 2-6.25-14.fc9.i686,带有 Gnome 桌面。两个平台都运行最新的 Android 工具、设备模拟器、adb、ant,以及最新的 SDK 和 NDK,支持构建到 Android 4.4.2 级别的设备。

于 2014-03-25T17:09:02.097 回答