由于代码下载不完全报错的处理方法若干[转]

build/core/java.mk:20: *** dalvik/dexgen: Invalid LOCAL_SDK_VERSION '4' Choices are: current .  Stop.以及其类似的错误:

user@Ubuntu1004:~/omap3/ics-google-re/mydriod$ make

============================================

PLATFORM_VERSION_CODENAME=AOSP

PLATFORM_VERSION=4.0.3.0.2.0.1.0

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=linux

HOST_BUILD_TYPE=release

BUILD_ID=OPENMASTER

OUT_DIR=out

===========================================

/bin/bash: line 0: cd: cts/tools/cts-native-xml-generator/src/res: No such file or directory

build/core/java.mk:20: *** dalvik/dexgen: Invalid LOCAL_SDK_VERSION '4' Choices are: current .  Stop.

 

解决:

first try: "rm -rf prebuilt ; repo sync -l prebuilt"

If that's still not enough: "rm -rf prebuilt ; repo sync prebuilt"

If that's still not enough and you have a solid internet connection:

"rm -rf prebuilt .repo/projects/prebuilt.git ; repo sync prebuilt".

-----------------------------------------------

Invalid LOCAL_NDK_VERSION '8' Choices are,Invalid LOCAL_SDK_VERSION '8' Choices are的解决方法 

 

这应该是更准确的解决方案!!!

Invalid LOCAL_NDK_VERSION '8' Choices are 在编译android源码的时候这个问题一直困扰我好久了。网上也查了很多无果,于是终于狠下心来想看看到底怎么回事,看了下出错的build/core/binary.mk文件,原来是因为项目中指定的NDK_VERSION与TARGET_AVAILABLE_NDK_VERSIONS不匹配造成的,那怎么TARGET_AVAILABLE_NDK_VERSIONS又是哪里来的呢?

 

在build/core/config.mk中可以看到

HISTORICAL_SDK_VERSIONS_ROOT := $(TOPDIR)prebuilt/sdk

HISTORICAL_NDK_VERSIONS_ROOT := $(TOPDIR)prebuilt/ndk

TARGET_AVAILABLE_SDK_VERSIONS := current $(call numerically_sort,\

    $(patsubst $(HISTORICAL_SDK_VERSIONS_ROOT)/%/android.jar,%, \

    $(wildcard $(HISTORICAL_SDK_VERSIONS_ROOT)/*/android.jar)))

TARGET_AVAILABLE_NDK_VERSIONS := $(call numerically_sort,\

    $(patsubst $(HISTORICAL_NDK_VERSIONS_ROOT)/android-ndk-r%,%, \

    $(wildcard $(HISTORICAL_NDK_VERSIONS_ROOT)/android-ndk-r*)))

 

在prebuilt文件夹里看了下。。。好吧,果然是少了不少东西,通过git 

clonegit://android.git.kernel.org/platform/prebuilt.git

推荐用 git fetch git://android.git.kernel.org/platform/prebuilt.git可以支持断点续传。

这个恶心的问题终于算是解决了。

------------------------------------------------------------

今天在ubuntu上编译Android源码,make一开始就遇到了sdk版本的错误,查了好久。。

后来发现,原来我取的代码不全,在prebuild项目中,少了一些文件。奇怪的是我用repo sync prebuild也没用,只有先把prebuild目录删除后,再执行repo sync prebuild,才把代码取完整,编译通过。

其实用repo status就可以看到有哪些文件缺失了(行首带-D标志的代表缺失文件)。

posted @ 2014-11-23 14:14  listenerri  阅读(484)  评论(0编辑  收藏  举报