android 7.0 컴 파일 문제 및 해결

3511 단어 Android
메모:Liux 운영 체제 에서 안 드 로 이 드 7.0 을 컴 파일 하려 면 open-jdk,mac os 를 사용 해 야 Oacle jdk 를 사용 할 수 있 습 니 다.제 것 은 ubuntu 16.04 입 니 다.다음은 제 가 만난 문제 와 해결 방법 을 진술 하 겠 습 니 다.참고 하 시기 바 랍 니 다.
       1.정상 적 인 3 부작 컴 파일:
            1)source build/envsetup.sh
            2)lunch 1
            3)make-j32(-j32 는 32 개의 스 레 드 를 동시에 컴 파일 하고 개인 컴퓨터 설정 에 따라 정 하 는 것 을 나타 낸다.나의 노트북 8G 메모리,i5 의 프로세서,256 G 의 고체 하 드 디스크 는 보통 10 개의 스 레 드 를 엽 니 다.즉,make-j10,스 레 드 수 는 2 의 배수 입 니 다)
주:android 7.0 컴 파일 은 make update-api 를 실행 할 필요 가 없습니다.물론 실행 해도 틀 리 지 않 습 니 다.
        내 가 만난 문제:
             1)문제:컴퓨터 에 설 치 된 open-jdk 1.7 이지 만 환경 변 수 를 설정 하지 않 아 원본 코드 를 컴 파일 할 때 감지 되 지 않 습 니 다.
             원인:build/envsetup.sh 파일 에서 함수 setjava_홈()은 다음 과 같다.
function set_java_home() {
    # Clear the existing JAVA_HOME value if we set it ourselves, so that
    # we can reset it later, depending on the version of java the build
    # system needs.
    #
    # If we don't do this, the JAVA_HOME value set by the first call to
    # build/envsetup.sh will persist forever.
        #export LEGACY_USE_JAVA7=1
    if [ -n "$ANDROID_SET_JAVA_HOME" ]; then
 export JAVA_HOME=""
    fi

    if [ ! "$JAVA_HOME" ]; then
      if [ -n "$LEGACY_USE_JAVA7" ]; then 
        echo Warning: Support for JDK 7 will be dropped. Switch to JDK 8.
        case `uname -s` in
            Darwin)
                export JAVA_HOME=$(/usr/libexec/java_home -v 1.7)
                ;;
            *)
                export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64
                ;;
        esac
      else
        case `uname -s` in
            Darwin)
                export JAVA_HOME=$(/usr/libexec/java_home -v 1.8)
                ;;
            *)
                export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
                ;;
        esac

      fi
      # Keep track of the fact that we set JAVA_HOME ourselves, so that
      # we can change it on the next envsetup.sh, if required.
      export ANDROID_SET_JAVA_HOME=true
    fi
}

만약 LEGACYUSE_JAVA 7 비 어 있 지 않 음,JAVAHOME 는 LEGACYUSE_JAVA 7 우 리 는 할당 이 없 기 때문에 컴 파일 할 때 시스템 은 자바 8 의 경로 만 찾 습 니 다.해결 방법 은 판단 하기 전에 exportLEGACY 를 추가 하 는 것 입 니 다.USE_JAVA 7:=1(왜 신명 성 export,build/core/main.mk 에서 컴 파일 환경 검 사 를 할 때 도 이 변 수 를 사용 하기 때문에 관심 이 있 으 면 가 볼 수 있 습 니 다).그러면 환경 검 측 절 차 를 컴 파일 할 수 있 습 니 다.저 는 뒤에서 오류 가 발생 했 습 니 다.javac:invalide source release:1.8(만 나 지 못 했 으 면 좋 겠 습 니 다)아직 해결 되 지 않 았 습 니 다(만약 당신 이 해결 했다 면,어서 오 세 요,setjava_home()에서 경고 가 있 습 니 다:warning:Support for JDK 7 will be dropped.Switch to JDK 8
....................................................................................
2)문제:locale:Cannot set LCALL to default locale: No such file or directory
원인:시스템 bug,터미널 에 locale 을 입력 하고 차 로 돌아 갑 니 다.출력 은 다음 과 같 습 니 다.
locale: Cannot set LC_ALL to default locale: No such file or directory
LANG=en_US.UTF-8
LANGUAGE=
LC_CTYPE=UTF-8
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=

해결 방법:컴 파일 하기 전에 터미널 에 export LC 를 입력 하 십시오.ALL ="en_US.UTF-8"이면 됩 니 다.물론 envsetup.sh 에 추가 할 수 있 습 니 다.

좋은 웹페이지 즐겨찾기