我正在尝试制作一个可以在windows和unix系统上运行的简单构建脚本。 如果是windows,脚本将从cygwin运行,否则只是一个标准的shell。
该脚本将执行以下操作:
我不确定使用什么样的脚本语言及其语法,我只知道它大致如上所述。关于如何进行的任何想法?
答案 0 :(得分:5)
在我看来,您已经编写了脚本,只需要进行一些修改:
Windows
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
的的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
另外,请确保您的PATH env变量中存在javah
如果它不存在,您可以在开头将其添加到脚本中:
Windows
SET PATH=c:\path\to\javah;%PATH%
的Unix
export PATH=/path/to/javah:$PATH
注意:您可能必须在Windows上修改脚本的sdk / ndk路径。
答案 1 :(得分:4)
如果您正在使用Eclipse,我建议为此任务创建一个新的启动器。打开项目属性,然后从左侧窗格中选择“构建器”。我们希望最终得到这个:
单击“新建...”并创建一个新的程序启动器:
填写ndk-build
的路径(我建议将其添加到您的系统路径,以便您不需要如图所示的绝对路径)和项目工作区:
这应该已经有效,但我们可以限制在完成时刷新哪些资源:
libs
文件夹并选择它(以及受ndk-build
影响的所有其他文件夹,如果适用)
最后,我们可以在运行NDK Builder时限制(即仅在JNI源更改时):
jni
文件夹并选择它(或者您拥有JNI源文件的地方,以及应该触发新ndk-build
的任何其他文件)
我希望这会让您的构建过程更轻松!
答案 2 :(得分:0)
我想我在这里遗漏了一些东西。您当然可以通过Cygwin或Unix / Linux在Windows上运行shell脚本(.sh)。你有特定的问题吗?
另外,请确保脚本中有“#!/ bin / bash”文件前缀。
答案 3 :(得分:0)
Ant怎么样?据我所知,它可以从Win和Linux运行......而且你必须为两者编写一次目标代码。如果你坚持的话,甚至可以在.bat和.sh中调用Ant。