Android7.1代码编译错误

拿到RK3288平台7.1的代码,平台本来是用repo进行管理的。我们将代码改用git去管理,在删除了repo相关的管理文件之后在进行编译时出现了错误,如下:[ 44% 7552/17136] build out/target/product/hikari/gen/EXECUTABLES/iw_intermediates/version.c
FAILED: /bin/bash -c "external/iw/version.sh out/target/product/hikari/gen/EXECUTABLES/iw_intermediates/version.c"
fatal: No names found, cannot describe anything.
ninja: build stopped: subcommand failed.
build/core/ninja.mk:148: recipe for target 'ninja_wrapper' failed
make: *** [ninja_wrapper] Error 1

#### make failed to build some targets (01:39:34 (hh:mm:ss)) ####

后来在stackoverflow中找到了参考答案:地址:https://stackoverflow.com/questions/41343267/aosp-build-error-executables-iw-intermediates-version-c里面提供里两个方法:1.You can comment out everything except v="$VERSION" and the last two echo lines.But this is a temporary fix.(你可以注释掉所有的内容,但是这个只是暂时性的措施)2.Another way to solve this is by doing a repo sync before you execute make. I fixed it by simply doing a repo sync and that updated and fixed everything for me.(还有一个方法就是,在你执行make前执行repo sync操作)

网上大部分的做法,其实就是让这个脚本失效,和stackoverflow中的方法1差不多:
#!/bin/sh

VERSION="4.1"
OUT="$1"

#if [ -d .git ] && head=`git rev-parse --verify HEAD 2>/dev/null`; then
if [ -d .git ] && head=`git rev-parse --verify HEAD 2>/dev/null` && [$VERSION != "4.1"]; then
        git update-index --refresh --unmerged > /dev/null
        descr=$(git describe --match=v*)

        # on git builds check that the version number above
        # is correct...
        [ "${descr%%-*}" = "v$VERSION" ] || exit 2

        v="${descr#v}"
        if git diff-index --name-only HEAD | read dummy ; then
                v="$v"-dirty
        fi
else
        v="$VERSION"
fi

echo '#include "iw.h"' > "$OUT"
echo "const char iw_version[] = \"$v\";" >> "$OUT"






你可能感兴趣的:(Android定制)