안드로이드

ant로 안드로이드 앱을 자동으로 빌드하자

안녕1999 2017. 2. 4. 23:30

NDK 샘플소스 빌드는 예전처럼 잘안되다.(gradle용으로 변경되었다.)


 ant로 안드로이드 앱을 자동으로 빌드하자


Android Ant 설정및 Build


다운로드



Android\test-code>D:\Android\ant\bin\ant release

Unable to locate tools.jar. Expected to find it in C:\Program Files\Java\jre1.8.0_121\lib\tools.jar

Buildfile: D:\Android\test-code\build.xml


XP에 "jdk-8u121-windows-i586.exe"을 설치하니, jdk1.8.0_121, jre1.8.0_121 2개의 폴더가 생기고,

jre1.8.0_121\lib\tools.jar를 jdk1.8.0_121\lib\tools.jar로 복사함.


..\Android\ant\bin\ant release

-build-setup:

[getbuildtools] Using latest Build Tools: 25.0.2

     [echo] Resolving Build Target for project_name...

[gettarget] Project Target:   Android 6.0

[gettarget] API level:        23

[gettarget] WARNING: No minSdkVersion value set. Application will install on all Android versions. 


minSdkVersion와 targetSdkVersion 정확하게 사용하기


ant debug

[aapt] invalid resource directory name : ....

=>ant clean 실행하고, ant debug하면 됨. 



>ndk-build

Android NDK: Your APP_BUILD_SCRIPT points to an unknown file: ./jni/Android.mk


..Android/android-ndk-r13b/build//../build/core/add-application.mk:198: *** And

roid NDK: Aborting...    .  Stop.

NDK 빌드
걸리는게 머가 이리 많나...

이전 샘플소스에서 jni 폴더를 찾아서, 복사하니, 컴파일됨.


ndk-build는 jni폴더의 c파일을 찾고,

ant debug/release는 src폴더의 c파일을 찾는다.


android-sdks\tools\ant\build.xml파일에 소스파일 경로가 src로 되어 있다.

<property name="source.dir" value="src" />


최근 소스가 src로 되어 있다.

android-ndk-r13b\build\core\build-local.mk에는 jni폴더안에 c소스파일과 Android.mk파일이 존재해야한다.

그러나, 최신 소스에는 cpp폴더안에 c소스가 있고, CMakeLists.txt 파일이 존재한다.(Android.mk파일없음.
최신 샘플 소스는 gradle방식으로 수정된듯 싶다.

(NDK는 왜 안바뀌었냐고....)

최신 소스를 버리고, 예전 jni 방식을 사용해야할듯 싶다. 



test-code>ndk-build

[arm64-v8a] Compile        : native-media-jni <= native-media-jni.c

[arm64-v8a] SharedLibrary  : libnative-media-jni.so

[arm64-v8a] Install        : libnative-media-jni.so => libs/arm64-v8a/libnative-

media-jni.so

[x86_64] Compile        : native-media-jni <= native-media-jni.c

[x86_64] SharedLibrary  : libnative-media-jni.so

[x86_64] Install        : libnative-media-jni.so => libs/x86_64/libnative-media-

jni.so

[mips64] Compile        : native-media-jni <= native-media-jni.c

[mips64] SharedLibrary  : libnative-media-jni.so

[mips64] Install        : libnative-media-jni.so => libs/mips64/libnative-media-

jni.so

[armeabi-v7a] Compile thumb  : native-media-jni <= native-media-jni.c

[armeabi-v7a] SharedLibrary  : libnative-media-jni.so

[armeabi-v7a] Install        : libnative-media-jni.so => libs/armeabi-v7a/libnat

ive-media-jni.so

[armeabi] Compile thumb  : native-media-jni <= native-media-jni.c

[armeabi] SharedLibrary  : libnative-media-jni.so

[armeabi] Install        : libnative-media-jni.so => libs/armeabi/libnative-medi

a-jni.so

[x86] Compile        : native-media-jni <= native-media-jni.c

[x86] SharedLibrary  : libnative-media-jni.so

[x86] Install        : libnative-media-jni.so => libs/x86/libnative-media-jni.so


[mips] Compile        : native-media-jni <= native-media-jni.c

[mips] SharedLibrary  : libnative-media-jni.so

[mips] Install        : libnative-media-jni.so => libs/mips/libnative-media-jni.

so



set path=%path%;D:\Android\ant\bin;D:\Android\android-ndk-r13b\build;"C:\Program Files\Java\jdk1.8.0_121\bin"


d:

cd D:\Android\test


del /s/q obj\*.*

rd /s/q obj


ant clean




ndk-build

ant debug

ant release


obj,bin,gen 폴더 생성됨



source value 1.5 is obsolete and will be removed in a future release

stackoverflow.com/.../source-value-1-5-is-obsolete-a...
이 페이지 번역하기
2014. 6. 20. - Another possibility (which will fix it for all Android builds made with Ant), is to tweak ... [options] source value 1.5 is obsolete and will be removed in a future release [javac] warning: [options] target value 1.5 is obsolete and ...



NDK 컴파일(빌드)시 error: unable to rename temporary

=> clean 해주면 됨.


warning: implicit declaration of function 'close' is invalid in C99

=> #include <unistd.h>