本帖最后由 lissdd 于 2014-6-9 19:17 编辑
2014.06.09 by lissdd 如花.四川大学.电子信息学院
一、准备Java环境
1.下载并安装 Java-F7U60-i586.exe 约127Mb 2.下载NDK : android-ndk-r9d-windows-x86.zip 约468Mb 解压后备用
3. 下载SDK: adt-bundle-windows-x86-20140321.zip 约 510Mb 解压后备用
用四川大学的校园网,要下很久哦
二、安装 Laz4android
下载laz4android1.3-43585-FPC2.7.1-New.7z 约58Mb,解压。 1、编译laz 解压得到目录laz4android, 进入编辑文件 built.bat 修改其中 : SET FPC_BIN_PATH=D:\dev\delphi\lazarus\laz4android为你自己正确的目录 保存后运行build.bat,约3分钟后编译完成 (你们的机器一定比我快)
2、运行laz 运行startlazarus.exe, 首次运行会有一个提示对话,不管,直接”start IDE” 打开\examples\androidlcl\androidlcltest.lpr工程文件
3、配置工程 菜单”Project”->”Project Option..”打开工程配置
file:///C:%5CDOCUME%7E1%5CADMINI%7E1%5CLOCALS%7E1%5CTemp%5Cmsohtml1%5C01%5Cclip_image002.jpgfile:///C:%5CDOCUME%7E1%5CADMINI%7E1%5CLOCALS%7E1%5CTemp%5Cmsohtml1%5C01%5Cclip_image002.jpg
点击“Librariyes” 路径设置如图一
找到第二步已经解压好的NDK目录,点击“Delete Invalid Paths”删除无效路径, 加入新路径(就是刚才你下载解压的NDK路径哦),我的是: 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 右边一定要把Target OS (默认为Linux,害我2个小时),拉选为“android”如图三红线圈出部分,否则编译时会得到如下错误: “Fatal: cannot find unit system used by fcllaz of packageFCL"
图三、选择目标平台
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\ SET APP_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 SET APK_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, asyou saw , my batch file is not called apkbuilder.bat and dx.bat.
So it can used to any version of Andrid SDK 即:无版本问题,适用各种版本的SDK哦! 再次感谢鸟语鸟人网友truetom在论坛 其中有一行: jarsigner-verbose -keystore bin\LCLDebugKey.keystore -keypass 123456 -storepass 123456 -signedjar bin\%APP_NAME%-unaligned.apkbin\%APP_NAME%-unsigned.apk LCLDebugKey 蓝色的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到手机安装吧!
(3) 上传到手机安装 上传到手机安装时,总是提示“程序未安装”错误,开始以为是版本问题,换从4.4换回2.2还是不行, 网上找了半天,说可能是未签名问题。 下载一个叫 DodoApkSign 的软件
选择examples\androidlcl\android\bin下androidlcltest-unsigned.apk然后“制作签名”, 生成的新apk文件就是最终版本了! 上传到手机,一切OK! 后记: 免费软件最大的问题就是什么都得靠摸索,沿途遇到很多问题,哪怕是一个小小的版本问题都会困扰我们很久,鄙人不才,制作这个教程花了两个周末才完成。 希望各位网友多写文章出来共享!如花写于四川大学2014.06.09
|