网上有很多相关的信息,具体就不说了,可以参考以下一些:
mac和windows下编译运行fbreaderj的过程
下载安装Cygwin
Android NDK安装
成功安装cygwin ,按照网上的做法:
可以在cygwin中通过vim修改,也可以在windows安装目录中修改 home\<你的用户名>\.bash_profile 文件中最后添加环境变量
NDK=/cygdrive/e/Andriod/develop/android-ndk-r4
export NDK
其中NDK=/cygdrive/<你的盘符>/<android ndk 目录> ,"NDK"这个名字随便起,以后经常用不要太长。
重启cygwin,输入:
cd $NDK
但输入cd $NDK时总是提示“no such file or directoryid……”
通过网上查找,原来直接用记事本之类的软件打开.bash_profile文件,然后加上NDK=/cygdrive/e/Andriod/develop/android-ndk-r4 export NDK 是不行的,会出错。
后来下载了个UltraEdit,打开.bash_profile文件然后加上NDK=/cygdrive/e/Andriod/develop/android-ndk-r4 export NDK就可以正常使用了。
具体原来暂时还不清楚。
成功安装cygwin后,配置完NDK,按照网上的配置,在builder里新建,配置如下图:
注:
1、我的cygwin是安装在C:\Program Files\cygwin
2、工程文件,即fBreaderJ的源代码是放在桌面:C:\Users\Sam\Desktop\FBReaderJ-sources-1.4.4\FBReaderJ-sources-1.4.4
3、ndk是安装在:D:\android-ndk-r7b
最终导入源代码,还是很多红叉叉,主要是:org.geometerplus.zlibrary.ui.android.R 找不到,clean了几次都不行,就是不会自动生成这个资源文件。
最后在网上看到有人提到local.properties这个文件,一看原来里面是设置SDK和NDK的路径。以是马上填上SDK和NDK的路径,如下:
sdk.dir=D:\\android-sdk_r07-windows\\android-sdk_r07-windows\\android-sdk-windows
ndk.dir=D:\\android-ndk-r7b
注:我的SDK路径是:D:\android-sdk_r07-windows\android-sdk_r07-windows\android-sdk-windows
NDK路径是:D:\android-ndk-r7b
之所以用“\\”代码“\”是转义字符
FBReaderJ源文件导入时,默认是android 1.5,但由于里面有些API是用到了高版本的API,如,MotionEvent event.getPointerCount(),就是2.0开始才有的API。
在Manifest配置文件中,用到了标签android:installLocation="auto",这个标签是2.2才开始使用,是指定优先安装到SD卡、手机内存还是自动。
所以为了能正常编译,需要把应用平台版本调到Android 2.2 。如果希望使用低版本,看来只能在找到一些代替方法或不使用一些高版本才有的标签或API。