一、準(zhǔn)備Java環(huán)境
1.下載并安裝 Java-F7U60-i586.exe 約127Mb
2.下載NDK : android-ndk-r9d-windows-x86.zip 約468Mb 解壓后備用
3. 下載SDK: adt-bundle-windows-x86-20140321.zip 約 510Mb 解壓后備用
用四川大學(xué)的校園網(wǎng),要下很久哦
二、安裝 Laz4android
下載laz4android1.3-43585-FPC2.7.1-New.7z 約58Mb,解壓。
1、編譯laz
解壓得到目錄laz4android, 進(jìn)入編輯文件 built.bat
修改其中 :
SET FPC_BIN_PATH=D:\dev\delphi\lazarus\laz4android為你自己正確的目錄
保存后運(yùn)行build.bat,約3分鐘后編譯完成 (你們的機(jī)器一定比我快)
2、運(yùn)行l(wèi)az
運(yùn)行startlazarus.exe, 首次運(yùn)行會(huì)有一個(gè)提示對(duì)話,不管,直接”start IDE”
打開(kāi)\examples\androidlcl\androidlcltest.lpr工程文件
3、配置工程
菜單”P(pán)roject”->”P(pán)roject Option..”打開(kāi)工程配置
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
點(diǎn)擊“Librariyes” 路徑設(shè)置如圖一
找到第二步已經(jīng)解壓好的NDK目錄,點(diǎn)擊“Delete Invalid Paths”刪除無(wú)效路徑,
加入新路徑(就是剛才你下載解壓的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
如圖二紅線圈出部分
圖二、設(shè)置NDK路徑
該新路徑根據(jù)個(gè)人NDK版本選擇有所變化
設(shè)置目標(biāo)平臺(tái)左下角的Config and Target 右邊一定要把Target OS (默認(rèn)為L(zhǎng)inux,害我2個(gè)小時(shí)),拉選為“android”如圖三紅線圈出部分,否則編譯時(shí)會(huì)得到如下錯(cuò)誤:
“Fatal: cannot find unit system used by fcllaz of packageFCL"
圖三、選擇目標(biāo)平臺(tái)
4、 編譯例子
“OK”確定配置后, 就可以shift + F9 等待不到一分鐘后,就可以在目錄:
\examples\androidlcl\android\libs\armeabi下發(fā)現(xiàn)編譯成的liblclapp 文件,但不知為何沒(méi)有擴(kuò)展名, 加上.so吧,阿門(mén)!
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
運(yùn)行時(shí)要求輸入密碼,記住,下次要用的
運(yùn)行生成 \bin\LCLDebugKey.keystore文件
(2)、打包生成APK
用批處理文件\examples\androidlcl\android\build_debug_apk.bat ,但它調(diào)用了apkbuilder.bat 和dx.bat會(huì)引起版本不同找不到apkbuilder.jar等問(wèn)題,故改用網(wǎng)友truetom 提供的build_debug_apk.bat,他用鳥(niǎo)語(yǔ)說(shuō)該文件:
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
即:無(wú)版本問(wèn)題,適用各種版本的SDK哦!
再次感謝鳥(niǎo)語(yǔ)鳥(niǎo)人網(wǎng)友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
藍(lán)色的123456 即剛才生成Key時(shí)第(1)步generate_debug_key.bat運(yùn)行時(shí)要求你輸入的密碼,修改到一致。
運(yùn)行時(shí)可能遇到找不到dx.jar的錯(cuò)誤:
這是版本不同路徑不同造成的,比如我的在
sdk\build-tools\android-4.4.2\lib\dx.jar
把lib\dx.jar一起復(fù)制到錯(cuò)誤提示要求的目錄sdk\platform-tools\下即可。
運(yùn)行大功告成后是這樣的:
examples\androidlcl\android\bin路徑下androidlcltest.apk赫然在目,哦,god, 這就是我們要的寶貝。1.5Mb, 如果只有21kb就是編譯文件liblclapp忘了加.so,copy到手機(jī)安裝吧!
(3) 上傳到手機(jī)安裝
上傳到手機(jī)安裝時(shí),總是提示“程序未安裝”錯(cuò)誤,開(kāi)始以為是版本問(wèn)題,換從4.4換回2.2還是不行, 網(wǎng)上找了半天,說(shuō)可能是未簽名問(wèn)題。
下載一個(gè)叫 DodoApkSign 的軟件
選擇examples\androidlcl\android\bin下androidlcltest-unsigned.apk然后“制作簽名”, 生成的新apk文件就是最終版本了!
上傳到手機(jī),一切OK!
后記:
免費(fèi)軟件最大的問(wèn)題就是什么都得靠摸索,沿途遇到很多問(wèn)題,哪怕是一個(gè)小小的版本問(wèn)題都會(huì)困擾我們很久,鄙人不才,制作這個(gè)教程花了兩個(gè)周末才完成。
希望各位網(wǎng)友多寫(xiě)文章出來(lái)共享!如花寫(xiě)于四川大學(xué)2014.06.09