Laz4android v1.3 最新 2014原创教程

作者: 专题 2016/12/2 0:15:43

一、准备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在论坛

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 -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


特别推荐

玩家留言 跟帖评论
查看更多评论