2011-10-04 7 views
6

Windows 및 UNIX 시스템에서 작동하는 간단한 빌드 스크립트를 만들려고합니다. Windows의 경우 cygwin에서 스크립트를 실행해야합니다. 그렇지 않으면 표준 쉘로 실행됩니다.Android-ndk - cygwin 용 ndk-build 용 간단한 빌드 스크립트

다음을 수행합니다 스크립트 :

  1. 가 설정 한 디렉토리 변수 SDK_ROOT에 '/ cygdrive/C/PROGRA ~ 2/안드로이드/안드로이드 SDK /'
  2. 을 설정 디렉토리 변수 NDK_ROOT을에 '/cygdrive/C/PROGRA ~ '2/안드로이드 NDK-R6B
  3. CD 안드로이드/빈/
  4. 실행 javah의 -d ../../test/mytest/ -classpath :. $의 SDK_ROOT/플랫폼/안드로이드 -8/android.jar com.test.MyTest
  5. cd ..
  6. 실행 $의 NDK_ROOT/내가 사용이나 그 구문은, 난 단지는 대략 위와 같이 보일 것 알고 스크립팅 언어의 종류를 모르겠어요

을 NDK 빌드. 진행 방법에 대한 아이디어가 있습니까?

답변

5
당신이 이미 스크립트를 쓴 날 것으로 보인다

, 그냥 몇 가지 수정을 필요로

#!/bin/bash 
SDK_ROOT="/cygdrive/C/PROGRA~2/Android/android-sdk/" 
NDK_ROOT="/cygdrive/C/PROGRA~2/android-ndk-r6b" 
cd Android/bin/ 
javah -d ../../test/mytest/ -classpath .:${SDK_ROOT}/platforms/android-8/android.jar com.test.MyTest 
cd .. 
$NDK_ROOT/ndk-build 


(210)

또한, javah가 당신의 PATH의 ENV 변수에 있는지 확인하십시오.

윈도우
SET PATH=c:\path\to\javah;%PATH%

유닉스



export PATH=/path/to/javah:$PATH
을 : 존재하지 않는 경우, 당신은 처음에 스크립트에 추가 할 수 있습니다
당신은 할 수 있습니다 창에서 스크립트의 sdk/ndk 경로를 수정합니다.

+0

예, 이것이 제가 찾고있는 것입니다! 그러나, Cygwin에서 유닉스 스크립트를 실행하려고 할 때; 다음과 같은 메시지가 나타납니다. # 1 : "line 5 : $ '\ r': 명령이 존재하지 않습니다." # 2 : "No such file or directory : 안드로이드/bin/(스크립트가있는 곳에서부터 존재 함에도 불구하고)" – KaiserJohaan

+0

bash cygwin 쉘에서 스크립트 (유닉스)를 시작하고 있습니까? 저에게 스크린 샷을 보여 주시겠습니까? – aayoubi

+0

@KaiserJohaan'\ r'은 bash 스크립트에 Windows "라인 피드"문자가 있음을 나타냅니다. 유닉스 스타일의 줄 바꿈으로 저장해보십시오. (예 : Notepad ++ : 편집 메뉴, EOL 변환) –

4

Eclipse를 사용하는 경우이 작업에 대한 새로운 시작 프로그램을 만드는 것이 좋습니다. 프로젝트 속성을 열고 왼쪽 창에서 빌더를 선택하십시오. 우리는이와 끝까지하려는 :

Project builders

클릭 "새 ...

New program launcher

ndk-build의 경로에 채우기가 (당신이 묘사 된 것처럼 절대 경로를 필요로하지 않도록 내가 당신의 시스템 경로에 추가 제안)와 프로젝트 작업 영역 : "새로운 프로그램의 실행 프로그램을 만들 :

NDK builder properties

이 이미 작동해야하지만 우리가 완료되면 새로 고침되는 자원을 제한 할 수

  1. 은 "새로 고침"탭을 클릭
  2. 확인
  3. 클릭 프로젝트에서 libs 폴더를 찾아서 선택
  4. 을 "자원 지정"
  5. 확인 "특정 자원" "새로 고침 완료시 자원"(및 ndk-build에 의해 영향을 추가 폴더, 해당되는 경우) 마지막으로

Refresh working set

, NDK 빌더가 실행해야 할 때 우리는 을 제한 할 수 있습니다 (즉에만 JNI 소스 변경시) :

  1. 가 확인이
  2. 클릭 ""관련 자원의 작업 집합을 지정합니다 ""옵션을 빌드 "탭을 클릭합니다 지정 자원 "
  3. 프로젝트에 jni 폴더를 찾아서 선택합니다 (또는 당신이 JNI 소스 파일, 플러스 추가 파일이있을 때마다 그 새로운 ndk-build 트리거한다)

Build options

이렇게하면 빌드 프로세스가 더 쉬워지기를 바랍니다. 유닉스에게
myscript.sh

윈도우
myscript.cmd

@ECHO OFF 
setlocal 

SET SDK_ROOT=C:\PROGRA~2\Android\android-sdk\ 
SET NDK_ROOT=C:\PROGRA~2\android-ndk-r6b\ 
CD Android/bin/ 
javah -d ../../test/mytest/ -classpath .:%SDK_ROOT%/platforms/android-8/android.jar com.test.MyTest 
CD .. 
RUN %NDK_ROOT%/ndk-build 

endlocal 

:

+0

cygwin에서 Eclipse와 독립적으로 실행할 수있는 .sh 스크립트 솔루션을 찾고 있습니다. – KaiserJohaan

+1

안녕하세요, @Paul입니다. Eclipse에서 'Build Failed'오류가 표시됩니다. '이 오류가 발생했습니다.'명령 줄 실행 중 예외가 발생했습니다. "D : \ android-ndk-r5b \ ndk-build"디렉터리 ("D : \ All Data \ WorkSpace \ MainBrowserActivity"디렉터리)에서 프로그램을 실행할 수 없습니다. CreateProcess 오류 = 193, % 1은 (는) 올바른 Win32 응용 프로그램이 아닙니다. 어떤 해결책이 있습니까 –

+0

'ndk-build'는 Windows 실행 파일이 아닙니다. Unix 기반 시스템이나 Cygwin에서만 실행할 수 있습니다. Windows에서 Cygwin에서 Eclipse를 실행하는 스크린 샷을 찍었습니다. 일반적으로 나는 Ubuntu에서 원시 코드로 응용 프로그램을 개발하는 것을 선호합니다. –

0

여기 뭔가가 빠졌습니다. Cygwin이나 Unix/Linux를 통해 Windows에서 쉘 스크립트 (.sh)를 실행할 수 있습니다. 특정 문제가 있습니까?

또한 스크립트에 "#!/bin/bash"파일 접두사가 있는지 확인하십시오.

0

개미는 어떤가? 필자가 아는 한, Win과 Linux에서 실행할 수 있습니다 ... 그리고 두 가지 모두에 대해 한 번만 코드를 작성해야합니다. Ant에서 .bat와 .sh로 전화를 걸 수도 있습니다.