Android-ndk - 用于cygwin的ndk-build的简单构建脚本

Kai*_*aan 6 bash android cygwin android-ndk

我正在尝试制作一个可以在windows和unix系统上运行的简单构建脚本.如果是windows,脚本将从cygwin运行,否则只是一个标准的shell.

该脚本将执行以下操作:

  1. 将目录变量SDK_ROOT设置为'/ cygdrive/C/PROGRA~2/Android/android-sdk /'
  2. 将目录变量NDK_ROOT设置为'/ cygdrive/C/PROGRA~2/android-ndk-r6b'
  3. cd Android/bin /
  4. 运行javah -d ../../test/mytest/-classpath.:$ SDK_ROOT/platforms/android-8/android.jar com.test.MyTest
  5. cd ..
  6. 运行$ NDK_ROOT/ndk-build

我不确定使用什么样的脚本语言及其语法,我只知道它大致如上所述.关于如何进行的任何想法?

aay*_*ubi 5

在我看来,你已经编写了脚本,它只需要一些修改:

视窗
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
Run Code Online (Sandbox Code Playgroud)

Unix的
myscript.sh

#!/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
Run Code Online (Sandbox Code Playgroud)


另外,请确保您的PATH env变量中存在javah.
如果它不存在,您可以在开头将它添加到脚本:

Windows
SET PATH=c:\path\to\javah;%PATH%

Unix
export PATH=/path/to/javah:$PATH


注意:您可能必须在Windows上修改脚本的sdk/ndk路径.