2012-10-23 119 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