美文网首页
ionic + cordova打包安卓

ionic + cordova打包安卓

作者: 车文烨 | 来源:发表于2023-04-03 10:50 被阅读0次

    一、环境

    @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就打包好了!

    相关文章

      网友评论

          本文标题:ionic + cordova打包安卓

          本文链接:https://www.haomeiwen.com/subject/ucprddtx.html