By lissdd如花
一、准备Java坏境
1、Java机下载并安装Java-F7U60-i586.exe
2、NDK下载android-ndk-r9d-windows-x86.zip解压后备用
3、SDK下载adt-bundle-windows-x86-20140321.zip解压后备用
二、安装 Lazarus
下载laz4android1.3-43585-FPC2.7.1-New.7z
1、编译laz
修改其中 :
打开\examples\androidlcl\androidlcltest.lpr工程文件,
菜单”Project”->”ProjectOption..”打开工程配置
点击“Librariyes”路径设置如图一
加入新路径:
android-ndk-r9d\toolchains\arm-linux-androideabi-4.6\prebuilt\windows\lib\gcc\arm-linux-androideabi\4.6
和
android-ndk-r9d\platforms\android-8\arch-arm\usr\lib
如图二红线圈出部分
图二、设置NDK路径
该新路径根据个人NDK版本选择有所变化
设置目标平台左下角的Config and Target右边一定要把TargetOS(默认为Linux,害我2个小时),拉选为“android”如图三红线圈出部分,否则编译时会得到如下错误:
“Fatal: cannot find unit system used by fcllaz ofpackage FCL"
4、 编译例子
“OK”确定配置后, 就可以shift + F9等待不到一分钟后,就可以在目录:
\examples\androidlcl\android\libs\armeabi下发现编译成的liblclapp文件,但不知为何没有扩展名, 加上.so吧,阿门!
5、制作APK包
(1)生成Key:
修改\examples\androidlcl\android\generate_debug_key.bat中的路径为本地正确路径
我的为:
SETPATH=D:\dev\delphi\lazarus\adt-bundle-windows-x86-20140321\sdk\tools\;D:\dev\delphi\lazarus\adt-bundle-windows-x86-20140321\sdk\platform-tools\;C:\ProgramFiles\Java\jdk1.7.0_60\bin\
SETAPP_NAME=androidlcltest
SETANDROID_HOME=D:\dev\delphi\lazarus\adt-bundle-windows-x86-20140321\sdk
SETAPK_SDK_PLATFORM=D:\dev\delphi\lazarus\adt-bundle-windows-x86-20140321\sdk\platforms\android-19
SETAPK_PROJECT_PATH=D:\dev\delphi\lazarus\laz4android\examples\androidlcl\android
运行时要求输入密码,记住,下次要用的
运行生成 \bin\LCLDebugKey.keystore文件
(2)、打包生成APK
用批处理文件\examples\androidlcl\android\build_debug_apk.bat,但它调用了apkbuilder.bat和dx.bat会引起版本不同找不到apkbuilder.jar等问题,故改用网友truetom提供的build_debug_apk.bat,他用鸟语说该文件:
In this batch file, as you saw , mybatch file is not called apkbuilder.bat and dx.bat.
So it can used to any version of Andrid SDK
即:无版本问题,适用各种版本的SDK哦!
再次感谢鸟语鸟人网友truetom在论坛
http://forum.lazarus.freepascal.org/index.php/topic,21766.msg128485.html#msg128485中提供的build_debug_apk.bat
其中有一行:
jarsigner -verbose-keystore bin\LCLDebugKey.keystore -keypass 123456 -storepass 123456 -signedjarbin\%APP_NAME%-unaligned.apk bin\%APP_NAME%-unsigned.apkLCLDebugKey
蓝色的123456即刚才生成Key时第(1)步generate_debug_key.bat运行时要求你输入的密码,修改到一致。
运行时可能遇到找不到dx.jar的错误:
这是版本不同路径不同造成的,比如我的在
sdk\build-tools\android-4.4.2\lib\dx.jar
把lib\dx.jar一起复制到错误提示要求的目录sdk\platform-tools\下即可。
运行大功告成后是这样的:
examples\androidlcl\android\bin路径下androidlcltest.apk赫然在目,哦,god,这就是我们要的宝贝。1.5Mb, 如果只有21kb就是编译文件liblclapp忘了加.so,copy到手机安装试下吧。
注:以前教程配置模拟器,过程复杂,版本问题多,还要下载额外的东东(还可能修改下载地址deng),还是直接安装到手机好。
上传到手机安装时,总是提示“程序未安装”错误,开始以为是版本问题,换从4.4换回2.2还是不行,网上找了半天,说可能是未签名问题。
下载一个叫 Dodo ApkSign的软件,
选择examples\androidlcl\android\bin下androidlcltest-unsigned.apk然后“制作签名”,生成的新apk文件就是最终版本了!
但是每次都用这个签名软件麻烦,于是我制作了一个包copy2android.ziphttp://pan.baidu.com/s/1i33g8QD文件,
解压其中4个文件到 laz4android\examples\androidlcl\android下,
执行build_debug_apk1.bat文件即可在\bin目录下得到androidlcltest.apk
然后就可以copy到手机安装了
免费软件最大的问题就是什么都得靠摸索,沿途遇到很多问题,哪怕是一个小小的版本问题都会困扰我们很久,鄙人不才,制作这个教程花了两个周末才完成。lissdd原创于四川大学.电子信息学院.
希望各位网友多写文章出来共享!
联系客服