一、準備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