Android SDK를 설치했고 build-tools/android-VERSION
PATH에서 바이너리를 사용할 수 있도록 하기 위해 몇 줄을 추가했습니다.
ANDROID_SDK=/Application/Binaries/adt-bundle-linux-x86_64-20140321/sdk/
ANDROID_PATH=$ANDROID_SDK/tools:$ANDROID_SDK/platform-tools:$ANDROID_SDK/build-tools/android-4.4.2/
문제는 SDK를 언제든지 업데이트할 수 있으므로 build-tools/android-4.4.2/
상황이 바뀔 수 있다는 것입니다. 그렇다면 파일을 다시 편집하고 android-version
$PATH의 섹션을 업데이트해야 합니다.
그래서 프로필을 이렇게 바꿨습니다.
ANDROID_SDK=/Application/Binaries/adt-bundle-linux-x86_64-20140321/sdk/
ANDROID_PATH=$ANDROID_SDK/tools:$ANDROID_SDK/platform-tools
for x in $ANDROID_SDK/build-tools/android-*/; do
export PATH=$PATH:$x
done
좀 멍청한 것 같은데, 더 잘 쓰는 방법이 없을까요?
답변1
이상적인 접근 방식은 이라는 소프트 링크 디렉터리를 생성 adt
하고 SDK가 변경된 후 이를 다시 생성하는 것입니다.
그러므로 당신 PATH
의 의지는 변함이 없습니다.
답변2
이 접근 방식에서는 ls
디렉터리에 대해서만 시간순으로 출력된 두 배( ) 가 명령 -td
으로 파이프된 다음 첫 번째 행을 선택합니다. head
결과적으로 PATH 환경 변수는 adt-bundle-linux-x86_64-*/sdk
두 가지 모두의 최신 버전을 사용하여 수정되어야 합니다 build-tools/android-*/
.
ANDROID_SDK=$( ls -td /Application/Binaries/adt-bundle-linux-x86_64-*/sdk/ | head -n 1 )
if ! [ -z $ANDROID_SDK ] ; then
ANDROID_PATH=$ANDROID_SDK/tools:$ANDROID_SDK/platform-tools
ANDROID_BUILDTOOLS=$( ls -td $ANDROID_SDK/build-tools/android-*/ | head -n 1 )
if ! [ -z $ANDROID_BUILDTOOLS ] ; then
echo "Adding $ANDROID_BUILDTOOLS to PATH"
export PATH=$PATH:$ANDROID_BUILDTOOLS
else
echo "Couldn't find build tools"
fi
else
echo "Couldn't find SDK"
fi
답변3
PATH="$PATH:$(printf '%s:' $ANDROID_SDK/build-tools/android-[0-9.]*/)"
작동해야합니다.
cd ~ ; mkdir dir1 dir2 dir3
( PATH=$(printf %s: $HOME/dir[12])
echo "$PATH" )
/home/mikeserv/dir1:/home/mikeserv/dir2:
Another method:
PATH="$PATH:$( set -- `printf '%s\n' "$ANDROID_SDK"*/android[0-9.]*/ |
sort -rV` ; [ -d "$1" ] && echo "$1" )"
이는 다음을 활용합니다.sort's -Version
처리 시 위치 매개변수가 보장되어야 합니다."$1"
항상 최신 버전의 Android SDK로 설정하세요. 예를 들어:
정렬되지 않음:
% printf %s\\n ~/dir[0-9]*
/home/mikeserv/dir1
/home/mikeserv/dir2
/home/mikeserv/dir23
/home/mikeserv/dir3
/home/mikeserv/dir45
그걸 써:
% printf %s\\n ~/dir[0-9]* | sort -V
/home/mikeserv/dir1
/home/mikeserv/dir2
/home/mikeserv/dir3
/home/mikeserv/dir23
/home/mikeserv/dir45
그리고 반전:
% printf %s\\n ~/dir[0-9]* | sort -rV
/home/mikeserv/dir45
/home/mikeserv/dir23
/home/mikeserv/dir3
/home/mikeserv/dir2
/home/mikeserv/dir1