简体   繁体   English

Android无法在OS X 10.7上构建

[英]Android fails to build on OS X 10.7

I am trying to build the android source main branch with GNU gcc 4.7. 我正在尝试使用GNU gcc 4.7构建android源主分支。 Everything worked until I updated to Xcode 4.5. 一切正常,直到我更新到Xcode 4.5。 It seems to be a java-related or permission-related problem. 这似乎是与Java相关或与权限相关的问题。 I double checked and all the directories are writable and javac (1.6.0_37) works fine. 我仔细检查过,所有目录都是可写的,并且javac (1.6.0_37)正常工作。

This is my configuration information 这是我的配置信息

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

but I get this error 但是我得到这个错误

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

I ran into an issue very close to this one. 我遇到了一个非常接近这一问题的问题。

============================================ PLATFORM_VERSION_CODENAME=REL PLATFORM_VERSION=4.3.2.1.000.000 TARGET_PRODUCT=full TARGET_BUILD_VARIANT=eng TARGET_BUILD_TYPE=release TARGET_BUILD_APPS= TARGET_ARCH=arm TARGET_ARCH_VARIANT=armv7-a TARGET_CPU_VARIANT=generic HOST_ARCH=x86 HOST_OS=darwin HOST_OS_EXTRA=Darwin-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) target Symbolic: libGLES_trace (out/target/product/generic/symbols/system/lib/libGLES_trace.so) target Symbolic: libui (out/target/product/generic/symbols/system/lib/libui.so) target Symbolic: libbinder (out/target/product/generic/symbols/system/lib/libbinder.so) target Strip: dalvik-vm-unit-tests (out/target/product/generic/obj/EXECUTABLES/dalvik-vm-unit-tests_intermediates =========================================== 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的-一个TARGET_CPU_VARIANT =通用HOST_ARCH = 86 HOST_OS =达尔文HOST_OS_EXTRA =达尔文-12.4.0-x86_64的-i386-64bit HOST_BUILD_TYPE =释放BUILD_ID = OPENMASTER OUT_DIR = out ============================================目标Java :电话公用(out / target / common / obj / JAVA_LIBRARIES / telephony-common_intermediates / classes)目标Strip:libLLVM(out / target / product / product / generic / obj / lib / libLLVM.so)target符号:libGLES_trace(out / target) /product/generic/symbols/system/lib/libGLES_trace.so)目标符号:libui(out / target / product / product / generic / symbols / system / lib / libui.so)目标符号:libbinder(out / target / product / generic /symbols/system/lib/libbinder.so)目标条带:dalvik-vm-unit-tests(out / target / product / generic / obj / EXECUTABLES / dalvik-vm-unit-tests_intermediates /dalvik-vm-unit-tests) target Strip: libemoji (out/target/product/generic/obj/lib/libemoji.so) target Strip: libsqlite (out/target/product/generic/obj/lib/libsqlite.so) target Strip: libsonivox (out/target/product/generic/obj/lib/libsonivox.so) target Strip: libharfbuzz_ng (out/target/product/generic/obj/lib/libharfbuzz_ng.so) target Strip: libharfbuzz (out/target/product/generic/obj/lib/libharfbuzz.so) Install: out/target/product/generic/system/lib/libemoji.so Install: out/target/product/generic/system/lib/libLLVM.so Install: out/target/product/generic/system/lib/libsonivox.so Install: out/target/product/generic/system/lib/libsqlite.so target Package: ApplicationsProvider (out/target/product/generic/obj/APPS/ApplicationsProvider_intermediates/package.apk) target Package: BackupRestoreConfirmation (out/target/product/generic/obj/APPS/BackupRestoreConfirmation_intermediates/package.apk) target Package: BasicDreams (out/target/product/generic/obj/APPS/BasicDreams_intermediates/package.ap / dalvik-vm-unit-tests)目标地带:libemoji(out / target / product / generic / obj / lib / libemoji.so)目标地带:libsqlite(out / target / product / generic / obj / lib / lib / libsqlite.so )目标条带:libsonivox(out / target / product / generic / obj / lib / libsonivox.so)目标条带:libharfbuzz_ng(out / target / product / generic / obj / lib / libharfbuzz_ng.so)目标条带:libharfbuzz(out / 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目标包:ApplicationsProvider(out / target / product / generic / obj / APPS / ApplicationsProvider_intermediates /package.apk)目标软件包:BackupRestoreConfirmation(out / target / product / generic / obj / APPS / BackupRestoreConfirmation_intermediates / package.apk)目标软件包:BasicDreams(out / target / product / generic / obj / APPS / BasicDreams_intermediates / package.ap k) frameworks/opt/telephony/src/java/com/android/internal/telephony/PhoneFactory.java:130: cannot find symbol symbol : variable PREFERRED_CDMA_SUBSCRIPTION location: class android.provider.Settings.Global Settings.Global.PREFERRED_CDMA_SUBSCRIPTION, ^ Note: Some input files use or override a deprecated API. k)frameworks / opt / telephony / src / java / com / android / internal / telephony / PhoneFactory.java:130:找不到符号symbol:变量PREFERRED_CDMA_SUBSCRIPTION位置:类android.provider.Settings.Global Settings.Global.PREFERRED_CDMA_SUBSCRIPTION,^注意:某些输入文件使用或覆盖不推荐使用的API。 Note: Recompile with -Xlint:deprecation for details. 注意:有关详细信息,请使用-Xlint:deprecation重新编译。 Note: Some input files use unchecked or unsafe operations. 注意:某些输入文件使用未经检查或不安全的操作。 Note: Recompile with -Xlint:unchecked for details. 注意:使用-Xlint:unchecked重新编译以获取详细信息。 1 error make: * [out/target/common/obj/JAVA_LIBRARIES/telephony-common_intermediates/classes-full-debug.jar] Error 41 make: * Waiting for unfinished jobs.... 1个错误: * [out / target / common / obj / JAVA_LIBRARIES / telephony-common_intermediates / classes-full-debug.jar]错误41:*等待未完成的作业...。

The issue turned out to be I didn't properly follow instructions at first. 原来是我最初没有正确按照说明进行操作。 It was on a case sensitive filesystem, per the android setup instructions, but I had copied it over from the normal filesystem. 根据android的安装说明,它位于区分大小写的文件系统上,但是我已经从普通文件系统复制了过来。 After I re-ran repo sync it compiled. 重新运行回购同步后,将其编译。

If this sounds like your issues, following http://source.android.com/source/initializing.html : 如果这听起来像您的问题,请遵循http://source.android.com/source/initializing.html

hdiutil create -type SPARSE -fs 'Case-sensitive Journaled HFS+' -size 40g ~/android.dmg hdiutil create -t​​ype SPARSE -fs'区分大小写的日志HFS +'-大小40g〜/ android.dmg

hdiutil attach ~/android.dmg.sparseimage -mountpoint /Volumes/android hdiutil附加〜/ android.dmg.sparseimage -mountpoint / Volumes / android

mv ~/android-source /Volumes/android mv〜/ android-source / Volumes / android

cd /Volumes/android/android-source cd /卷/ android / android-源

repo sync 回购同步

make -j4 使-j4

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM