ionic + cordova打包安卓

一、环境

@ionic/cli@6.19.1
cordova@11.0.0
gradle-4.6
Android SDK@29.0.2
Java SDK@1.8.0_361
nodejs@16.18.1

二、下载SDK、配置环境变量

1、下载gradle-4.6

下载不了的话 百度找下国内镜像下载;

配置系统环境变量:
GRADLE_HOMED:\gradle-4.10.3\bin

2、Android SDK我是用Android Studio下载的

注意本地有多个SDK版本的情况,可能不兼容;

配置环境变量:
ANDROID_HOMEANDROID_SDK_ROOT,两者值一样,填自己本地路径,C:\Users\你电脑的用户名\AppData\Local\Android\Sdk

3、安装java8并配置环境变量
JAVA_HOMED:\jdk1.8.0_361\bin
CLASSPATH%JAVA_HOME%\lib

4、然后path也添加一下
%JAVA_HOME%
%GRADLE_HOME%
%ANDROID_SDK_ROOT%

三、安装项目依赖

cnpm i或者yarn
npm i -g cordova@11.0.0 @ionic/cli@6.19.1

四、构建安卓工程

ionic cordova prepare android
如果没添加过安卓工程,控制台提示add增加,输入y回车即可

构建时如遇插件缺失Failed to restore plugin xxx,则安装对应插件cordova plugin add xxx,像极光推送jpush-phonegap-plugin还需要加上keycordova plugin add jpush-phonegap-plugin --variable APP_KEY=xxx

五、打包安卓apk

1、默认打包debug版本
ionic cordova build android

2、打包正式版
ionic cordova build android --release

3、build时下载gradle超时解决方案
安卓工程platforms\android搜索:
services.gradle.org/distributions/gradle
搜索结果例如:https\://services.gradle.org/distributions/gradle-4.6-all.zip
替换为本地地址(下载到本地):
file\:///D:/gradle/gradle-4.6-all.zip

4、远程Maven仓库文件下载超时(要上梯)
改为阿里云云效Maven
文件位置:platforms\android\build.gradle或者repositories.gradle
按需添加googlejcenter等,有特殊的如mpaas还需要账号密码;

    maven {
      url 'https://maven.aliyun.com/repository/google/'
    }
    maven {
      url 'https://maven.aliyun.com/repository/public/'
    }

5、记得build之前要改好gradleMaven配置

6、程序包com.example.chenyu不存在 程序包R不存在

用到百度地图才做,报错:SerialLocation.java:17: 错误: 程序包com.example.chenyu不存在 程序包R不存在

修改包名:
全局搜索com.example.chenyu替换为自己APP的包名

我这里的文件位置:platforms\android\app\src\main\java\com\chenyu\GaoDeLocation\SerialLocation.java17行的:import com.example.chenyu.R;

7、打包生产报错

ERROR in : Cannot determine the module for class AutotrophyContractPage in D:/project/arrow_epms/src/app/pages/project/autotrophy-contract/autotrophy-contract.page.ts! Add AutotrophyContractPage to the 
NgModule to fix it.

意思是AutotrophyContractPage组件没有注册到NgModule;

  1. 配置到对应xxx.module.ts里面;
  2. 如果改页面没用了就移除了重新build

8、apk位置
D:\project\arrow_epms\platforms\android\app\build\outputs\apk\

六、签名

使用jarsigner给打包出来的apk签名:
jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore 证书路径 app-release.apk 别名

例如:
jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore myapp.keystore app-release.apk myapp_alias


至此apk就打包好了!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容