2012-10-23 118 views
2

我想用GNU gcc 4.7构建android源代码主分支。 一切工作,直到我更新到Xcode 4.5。 它似乎是一个java相关或权限相关的问题。 我重复检查,所有的目录都是可写的,javac(1.6.0_37)正常工作。Android无法在OS X上构建10.7

这是我的配置信息

PLATFORM_VERSION_CODENAME=AOSP 
PLATFORM_VERSION=4.1.2.3.4.5.6.7.8.9 
TARGET_PRODUCT=full 
TARGET_BUILD_VARIANT=eng 
TARGET_BUILD_TYPE=release 
TARGET_BUILD_APPS= 
TARGET_ARCH=arm 
TARGET_ARCH_VARIANT=armv7-a 
HOST_ARCH=x86 
HOST_OS=darwin 
HOST_OS_EXTRA=Darwin-12.2.0-x86_64-i386-64bit 
HOST_BUILD_TYPE=release 
BUILD_ID=OPENMASTER 
OUT_DIR=out 

,但我得到这个错误

Install: out/host/darwin-x86/bin/acp 
host Java: antlr-runtime (out/host/common/obj/JAVA_LIBRARIES/antlr-runtime_intermediates/classes) 
target Java: core (out/target/common/obj/JAVA_LIBRARIES/core_intermediates/classes) 
host Java: dx (out/host/common/obj/JAVA_LIBRARIES/dx_intermediates/classes) 
external/jsr305/ri/src/main/java/javax/annotation/CheckForNull.java:14: error while writing javax.annotation.CheckForNull: could not create parent directories 
public @interface CheckForNull { 
     ^
1 error 
make: *** [out/host/common/obj/JAVA_LIBRARIES/jsr305lib_intermediates/javalib.jar] Error 41 
make: *** Waiting for unfinished jobs.... 
external/antlr/antlr-3.4/runtime/Java/src/main/java/org/antlr/runtime/ANTLRStringStream.java:37: error while writing org.antlr.runtime.ANTLRStringStream: could not create parent directories 
public class ANTLRStringStream implements CharStream { 
    ^
Note: Some input files use unchecked or unsafe operations. 
Note: Recompile with -Xlint:unchecked for details. 
1 error 
make: *** [out/host/common/obj/JAVA_LIBRARIES/antlr-runtime_intermediates/javalib.jar] Error 41 
dalvik/dx/src/com/android/dx/Version.java:22: error while writing com.android.dx.Version: could not create parent directories 
public class Version { 
    ^
Note: Some input files use unchecked or unsafe operations. 
Note: Recompile with -Xlint:unchecked for details. 
1 error 
make: *** [out/host/common/obj/JAVA_LIBRARIES/dx_intermediates/javalib.jar] Error 41 
libcore/luni/src/main/java/java/lang/Object.java:131: error while writing java.lang.Object: could not create parent directories 
public class Object { 
    ^
Note: Some input files use or override a deprecated API. 
Note: Recompile with -Xlint:deprecation for details. 
Note: Some input files use unchecked or unsafe operations. 
Note: Recompile with -Xlint:unchecked for details. 
1 error 
make: *** [out/target/common/obj/JAVA_LIBRARIES/core_intermediates/classes-full-debug.jar] Error 41 
+0

你尝试一个干净的构建?我想知道新的Xcode是否支持以前编译的源代码 – Jordan

+0

是的。我认为这是一个Java编译器相关的问题。我现在正在Ubuntu VM中进行编译,并且所有工作都在进行中。 –

+0

我建议回答自己的问题,以防其他人遇到此问题。 – Jordan

回答

0

我遇到了一个问题非常接近这一个。

============================================ PLATFORM_VERSION_CODENAME = REL PLATFORM_VERSION = 4.3.2.1.000.000 TARGET_PRODUCT =全TARGET_BUILD_VARIANT =工程TARGET_BUILD_TYPE =释放 TARGET_BUILD_APPS = TARGET_ARCH =手臂TARGET_ARCH_VARIANT =的ARMv7-A TARGET_CPU_VARIANT =通用HOST_ARCH = 86 HOST_OS =达尔文 HOST_OS_EXTRA =达尔文12.4.0- x86_64-i386-64bit HOST_BUILD_TYPE = release BUILD_ID = OPENMASTER OUT_DIR = out ================================== ========== target Java:telephony-common (out/target/common/obj/JAVA_LIBRARIES/telephony-common_intermediates/classes) target Strip :libLLVM(out/target/product/generic/obj/lib/libLLVM.so) 目标符号:libGLES_trace (out/target/product/generic/symbols/system/lib/libGLES_trace.so) target符号:libui (out/target/product/generic/symbols/system/lib/libui.so)目标 符号:libbinder (out/target/product/generic/symbols/system/lib/libbinder.so)目标 Strip:dalvik- VM-单元测试 (输出/目标/产品/通用/ OBJ /可执行/达尔维克-VM-单元tests_intermediates /达尔维克-VM-单元检验) 目标地带:libemoji (输出/目标/产品/通用/ obj/lib/libemoji.so)目标带: libsqlite(out/target/product/generic/obj/lib/libsqlite.so)目标 带(out/target/product/generic/obj/lib/libharfbuzz_ng.so)目标地带: libharfbuzz(out/target/product/generic/obj/lib/libsonivox.so)目标地带:libharfbuzz_ng target/product/generic/obj/lib/libharfbuzz.so) 安装:out/target/product/generic/system/lib/libemoji.so安装: out/target/product/generic/system/lib/libLLVM.so安装目录: out/target/product/generic/system/lib/libsonivox.so安装: out/target/product/generic/system/lib/libsqlite.so /obj/APPS/ApplicationsProvider_intermediates/package.apk) target Package:BackupRestoreConfirmation (out/target/product /通用/ obj/APPS/BackupRestoreConfirmation_intermediates/package.apk) 目标包:BasicDreams (out/target/product/generic/obj/APPS/BasicDreams_intermediates/package.apk) frameworks/opt/Telephony/src/java/com /安卓/内部/电话/ PhoneFactory.java:130: 找不到符号符号:变量PREFERRED_CDMA_SUBSCRIPTION 位置:类android.provider.Settings.Global Settings.Global.PREFERRED_CDMA_SUBSCRIPTION, ^注:某些输入文件使用或覆盖不推荐使用API。注:有关详细信息,请使用 -Xlint:deprecation进行重新编译。注意:某些输入文件使用未经检查或不安全的操作。注意:用-Xlint重新编译:取消选中 的详细信息。 1个错误化妆:* [输出/目标/普通/ OBJ/JAVA_LIBRARIES /电话-common_intermediates /类 - 全debug.jar] 错误41化妆:*等待未完成的作业....

问题原来是因为我没有正确地按照指示开始。它是在一个区分大小写的文件系统上,根据android安装说明,但我已经从普通文件系统复制过来。我重新运行回购同步后,它编译。

如果这听起来像你的问题,以下http://source.android.com/source/initializing.html

hdiutil创造型稀疏-fs '区分大小写的日志式HFS +' -size 40克〜/ android.dmg

hdiutil附加〜 /android.dmg.sparseimage -mountpoint /卷/机器人

MV〜/ Android的源/卷/机器人

坎德拉/容量/机器人/机器人源

回购同步

使-j4