Phonegap Andriod自动打包.

花了2天时间,找了不少资料,总算成功了.简化整理出来后分享出来大家参考.其核心原理是利用命令行.

首先,环境配置.自动打包需要一些准备工作.

1.至少需要下载java SDK(必须是1.6版本,我用的是jdk1.6)安装时需要注意,不要放到c:/program files里,以为这里有个空格不好用.我放在了D:\Java\jdk1.6.0

2.Android SDK for Windows. (我放在 D:\Android333\android-sdk_r16-windows\android-sdk_windows目录)

 

配置环境变量

我是windows7的操作系统
计算机--属性--高级系统设置 如下图

 

再设置 系统变量(这里不要搞错了) .如下图.

(1)Java SDK的环境变量。变量名:JAVA_HOME;变量值:C:\Program Files\Java\jdk1.6.0_10。Java SDK环境变量加入到Path中,值是:%JAVA_HOME%\bin;

 

 

 

(2)Android SDK环境变量加入到系统 Path中。变量值是:D:\Android\android-sdk-windows\tools;D:\Android\android-sdk-windows\platform-tools。这里有2个

(3)

将这3个变量加入到系统path中.

如此系统path变成了:%JAVA_HOME%\bin;%ANDROID_HOME%\tools;%ANDROID_HOME%\platform-tools;%ANT_HOME%\bin;%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\system32\wbem

 

以上配置工作确保完成.请在cmd命令下检测.

打开一个命令行窗口,键入命令:java -version。看到如下画面表示正确。




键入命令:android list target。看到如下类似画面表示正确。这里注意下,我最多只到了andriod-15



============================================================================================

以上检测完成后,需要制作3个批处理程序.bat文件.

step1.bat

此文件作用是把.java文件转成.class文件.

WORK_SPACE为你项目的目录. 你可以建立一个很简单的phonegap项目.

PKG_PATH 为项目的包名 ,注意写法

JAVA_SPACE ,ANDROID_SPACE 为开始准备工作的2个路径.注意java_space后面有/bin

THIRD_JAR 这里我用的是2.5的版本,可自行修改。

ANDROID_JAR 我这里只有15了,有17的可以改成17。还有几处15的地方可以批量修改。

其他部分看个人爱好,自行修改,具体释义我也不一一解释了。

用个记事本保存改后缀为.bat即可。

@ECHO OFF

REM ************[START]Do some homework************
SET WORK_SPACE=G:\AutoPackage
SET PKG_PATH=com\example\cmd
SET JAVA_SPACE=D:\Java\jdk1.7.0\bin
SET ANDROID_SPACE=D:\Android333\android-sdk_r16-windows\android-sdk_windows
REM ************[END]Do some homework************

 


REM ************[START]FOLDERS************
ECHO Creating output directories if needed...
SET SOURCE_FOLDER=%WORK_SPACE%\src
SET RESOURCE_FOLDER=%WORK_SPACE%\res
SET ASSETS_FOLDER=%WORK_SPACE%\assets
SET GEN_FOLDER=%WORK_SPACE%\gen
REM folder for the 3rd party java libraries
SET EXTERNAL_LIBS_FOLDER=%WORK_SPACE%\libs
REM folder for the native libraries
SET NATIVE_LIBS_FOLDER=%WORK_SPACE%\libs
SET OUT_FOLDER=%WORK_SPACE%\bin
SET OUT_CLASS_FOLDER=%OUT_FOLDER%\classes
REM ************[END]************

REM ************[START]Tools************
SET JAVA=%JAVA_SPACE%\java.exe
SET JAVAC=%JAVA_SPACE%\javac.exe
SET AAPT=%ANDROID_SPACE%\platform-tools\aapt.exe
SET AIDL=%ANDROID_SPACE%\platform-tools\aidl.exe
SET DX=%ANDROID_SPACE%\platform-tools\dx.bat
REM ************[END]************





REM ************[START]Do some homework************
SET THIRD_JAR=%WORK_SPACE%\lib\cordova-2.6.0.jar

set Manifest=%WORK_SPACE%\AndroidManifest.xml

REM ************[END]Do some homework************



REM ************[START]Extral jar************
SET ANDROID_JAR=%ANDROID_SPACE%\platforms\android-15\android.jar

REM ************[END]************

REM ************[START]Generate the necessary folders************
MKDIR %GEN_FOLDER%
MKDIR %OUT_FOLDER%
MKDIR %OUT_CLASS_FOLDER%
REM ************[END]************

REM ************[START]Generate the R.java************
ECHO Generating R.java / Manifest.java from the resources...
%AAPT% package -m -J %GEN_FOLDER% -M %Manifest% -S %RESOURCE_FOLDER% -I %ANDROID_JAR%   -I %THIRD_JAR%
REM ************[END]************

REM ************[START]Generate java classes from .aidl files.************
REM SET AIDL_FILE_1=F:\sdk\samples\android-15\ApiDemos\src\com\example\android\apis\app\IRemoteService.aidl
REM SET AIDL_FILE_OUT_1=F:\sdk\samples\android-15\ApiDemos\src\com\example\android\apis\app\RemoteService.java
REM %AIDL% -p -I %SOURCE_FOLDER% -o %GEN_FOLDER% %AIDL_FILE_1% %AIDL_FILE_OUT_1%  
REM FAIL
REM ************[END]************

REM ************[START]Compile this project's .java files into .class files.************
ECHO Compile this project's .java files into .class files.
%JAVAC% -encoding utf-8 -target 1.6 -d %OUT_CLASS_FOLDER% -bootclasspath %ANDROID_JAR%   -Xlint:unchecked %SOURCE_FOLDER%\%PKG_PATH%\*.java %GEN_FOLDER%\%PKG_PATH%\*.java  -classpath %THIRD_JAR%
REM ************[END]Compile this project's .java files into .class files.************

REM ************[START]Convert this project's .class files into .dex files.************
ECHO Convert this project's .class files into .dex files.
%DX% --dex --output=%OUT_FOLDER%\classes.dex %OUT_CLASS_FOLDER% %THIRD_JAR%
REM ************[END]Convert this project's .class files into .dex files.************
exit
ECHO EDITED BY SODINO
PAUSE
@ECHO ON

 

step1很重要.注意 必须是jdk1.6.0 其次java代码里不能有中文.备注,代码里都不能有

 

 


step2.bat

同step1先改头部。

不同的是 OUT_APK 为输出apk地址。

@ECHO OFF

REM ************[START]Do some homework************
SET WORK_SPACE=G:\AutoPackage
SET PKG_PATH=com\example\cmd
SET OUT_APK=%WORK_SPACE%\AA.apk
SET JAVA_SPACE=D:\Java\jdk1.7.0\bin
SET ANDROID_SPACE=D:\Android333\android-sdk_r16-windows\android-sdk_windows
REM ************[END]Do some homework************

REM ************[START]FOLDERS************
ECHO Creating output directories if needed...
SET SOURCE_FOLDER=%WORK_SPACE%\src
SET RESOURCE_FOLDER=%WORK_SPACE%\res
SET ASSETS_FOLDER=%WORK_SPACE%\assets
SET GEN_FOLDER=%WORK_SPACE%\gen
REM folder for the 3rd party java libraries
SET EXTERNAL_LIBS_FOLDER=%WORK_SPACE%\libs
REM folder for the native libraries
SET NATIVE_LIBS_FOLDER=%WORK_SPACE%\libs
SET OUT_FOLDER=%WORK_SPACE%\bin
SET OUT_CLASS_FOLDER=%OUT_FOLDER%\classes
REM ************[END]************

REM ************[START]Tools************
SET JAVA=%JAVA_SPACE%\java.exe
SET JAVAC=%JAVA_SPACE%\javac.exe
SET AAPT=%ANDROID_SPACE%\platform-tools\aapt.exe
SET AIDL=%ANDROID_SPACE%\platform-tools\aidl.exe
SET DX=%ANDROID_SPACE%\platform-tools\dx.bat
SET APKBUILDER=%ANDROID_SPACE%\tools\apkbuilder.bat
REM ************[END]************

REM ************[START]Extral jar************
SET ANDROID_JAR=%ANDROID_SPACE%\platforms\android-15\android.jar
set Manifest=%WORK_SPACE%\AndroidManifest.xml
REM ************[END]************

REM ************[START]
REM Put the project's resources into the output package file
REM This actually can create multiple resource package in case
REM Some custom apk with specific configuration have been
REM declared in default.properties.
REM ************
ECHO Put the project's resources into the output package file
%AAPT% package -a -f -M %Manifest% -S %RESOURCE_FOLDER% -A %ASSETS_FOLDER% -I %ANDROID_JAR% -F %OUT_FOLDER%\resources.arsc
REM ************[END]************

REM ************[START]
REM Package the application and sign it with a debug key.
REM This is the default target when building. It is used for debug.
REM ************
ECHO Put the project's resources into the output package file
REM %APKBUILDER% %OUT_APK% -v -u -z %RESOURCE% -f %CLASSES% -rf %SRC%
%APKBUILDER% %OUT_APK% -v -u -z %OUT_FOLDER%\resources.arsc -f %OUT_FOLDER%\classes.dex -rf %SOURCE_FOLDER%
REM ************[END]************

ECHO EDITED BY SODINO
PAUSE
@ECHO ON


 

step3.签名认证程序略过。

依次执行step1.bat step2.bat 即可生成apk.

修改时需要仔细再仔细,只要配置对了,都ok了。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值