1 环境搭建
- node
- npm install -g cordova (安装 Cordova )
2 创建项目
- cordova create MyApp
- cd MyApp
- cordova platform add ios --save
- cordova platform add android --save
给你的App添加目标平台。我们将会添加'ios'和'android'平台,并确保他们保存在了config.xml中 - cordova platform ls
检查你当前平台设置状况 - 打包
cordova build ios
cordova run android
cordova build
环境依赖
- Java Development Kit (JDK) 7
- Android Studio
- 设置
JAVA_HOME
指定为JDK安装路径 - 设置
ANDROID_HOME
指定为Android SDK安装路径
遇到的问题
问题1 ANDROID_SDK_ROOT=undefined (recommended setting)
E:\Projects\throwaway\cordovaAndroid8Test (helloworld@1.0.0)
λ cordova run android
Checking Java JDK and Android SDK versions
ANDROID_SDK_ROOT=undefined (recommended setting)
ANDROID_HOME=C:\Users\Jan\AppData\Local\Android\sdk (DEPRECATED)
Subproject Path: CordovaLib
解决: 设置系统环境变量ANDROID_SDK_ROOT,该值将为Android SDK路径(与变量ANDROID_HOME完全相同)。
问题2 cordova build
安装 提示 远程连接断开
原因:安装依赖文件有部分 需翻墙, 网络问题
问题3 配置 路径 打包完成后,模拟器打开不显示页面,页面白屏
页面白屏 原因是 www
文件中的 index.html
文件 找不到 app.js
vender.js
等 打包资源 , 需修改打包文件的路径关系
问题4 安卓 打包 app 项目无法请求接口
打包的离线代码 ,在浏览器
运行是 正常的,怀疑是 安卓环境
有影响
检查发现 安卓版本影响
修改根目录下的 config.xml
文件
参考
https://developer.android.com/guide/topics/manifest/application-element
问题5 安卓 修改app 名称 app 图片
根目录下的 config.xml
<name>项目名</name>
...
<platform name="android">
<allow-intent href="market:*" />
<edit-config file="app/src/main/AndroidManifest.xml" mode="merge" target="/manifest/application">
<application android:usesCleartextTraffic="true" />
</edit-config>
<icon density="ldpi" src="res/icon/android/icon1.png" />
<!-- 可以添加多个不同尺寸的 -->
</platform>
<platform name="ios">
<allow-intent href="itms:*" />
<allow-intent href="itms-apps:*" />
<icon height="180" src="res/icon/ios/icon1.png" width="180" />
<!-- 可以添加多个不同尺寸的 -->
</platform>
根目录下 创建对应文件夹 存放 图片
问题6 安卓 项目启动时黑屏的问题
- 资料参考 cordova 先黑屏再闪图解决方案
黑屏原因:
加载cordova
、cordova加载web页面
cordova加载web页面
可以通过 插件cordova-plugin-splashscreen
配置
配置方法
但是加载cordova
黑屏 是无法解决的 尝试通过 安卓 配置解决在 安卓环境中配置
配置方法
项目根目录 \platforms\android\app\src\main\res\values
下创建style.xml
文件
<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:android="http://schemas.android.com/apk/res/android">
<style name="Theme.AppStart" parent="android:Theme">
<item name="android:windowFullscreen">true</item>
<item name="android:windowBackground">@drawable/splash</item>
<item name="android:windowNoTitle">true</item>
</style>
</resources>
项目根目录 \platforms\android\app\src\main\res
下创建 drawable
文件夹, 存放 style.xml
文件 中引用的图片
项目根目录 \platforms\android\app\src\main\AndroidManifest.xml
中修改 <activity></activity>
标签 添加 样式
<activity
...
android:theme="@style/Theme.AppStart" ...>
...
</activity>
上面解决是开机黑屏问题
- 在
config.xml
文件下添加
...
<!-- 图片加载时间 -->
<!-- <preference name="SplashScreenDelay" value="4000" /> -->
<!-- 图片自动伸缩 -->
<preference name="SplashMaintainAspectRatio" value="false" />
<!-- loding -->
<preference name="ShowSplashScreenSpinner" value="true"/>
<!-- 动画效果 -->
<preference name="FadeSplashScreen" value="false"/>
...
修改完成后项目启动黑屏就已经解决了
问题7 安卓10 上 app后台运行时 图标不显示
在 config.xml
文件修改安卓配置 android:icon="@mipmap/ic_launcher"
...
<platform name="android">
<allow-intent href="market:*" />
<edit-config file="app/src/main/AndroidManifest.xml" mode="merge" target="/manifest/application">
<application android:usesCleartextTraffic="true" android:icon="@mipmap/ic_launcher"/>
</edit-config>
...
</platform>
问题8 安卓打包生产 环境 app
- 生成 .jks 文件
- 用 .jks 文件 打包 apk 上线
google play 上传 需私有的
.pepk
文件 ,.pepk
下面是 Google play 需要的 打包上线流程
- 上线之前 需修改 文件
<?xml version='1.0' encoding='utf-8'?>
<widget id="app所有人的域名" version="1.0.0" xmlns="http://www.w3.org/ns/widgets" xmlns:android="http://schemas.android.com/apk/res/android" xmlns:cdv="http://cordova.apache.org/ns/1.0">
<name>项目名称</name>
<description>
项目描述
</description>
<author email="联系邮箱" href="联系网址">
简介
</author>
...
</<widget>
- 完成上面步骤就可以 上传 app了
google play 支持 .aab 后缀文件
.aab 后缀文件介绍
问题9 Android刘海屏适配全方案
style.xml
添加
<item name="android:windowTranslucentStatus">true</item>
问题10 google play app 更新
创建新版本
- 修改 在
config.xml
文件下 版本
<?xml version='新本版号' encoding='utf-8'?>
<widget id="..." version="新本版号" xmlns="..." xmlns:android="..." xmlns:cdv="...">
.....
</widget>
- 上传 文件即可
问题11 android studio 模拟器上运行报错
报错是 启动活动时出错
,并不是没有安装成功,可以在模拟器查看是否安装成功
说明打包的apk是安装成功的,只是没能自动启动
而已,可以手动启动
问题12 查看 安卓应用的apk 是否有效
- 找到
keytool.exe
文件,目录应为C:\Program Files\Java\jdkxx_xx\bin
下 - 打开 cmd 终端
- 输入
keytool.exe -list -keystore 自己保存的 .jks 文件目录
回车
查看 安卓 .jks 文件的签名
- 找到
keytool.exe
文件,目录应为C:\Program Files\Java\jdkxx_xx\bin
下 - 打开 cmd 终端
- 输入
keytool.exe -list -v -keystore 自己保存的 .jks 文件目录 -storepass 888888(这里的888888是我自己keystore的密码)
回车
问题13 关于提交到华为应用市场 被驳回 原因:未包含安装证书
- 在此之前已经在 google play 上提交成功了
- 首先判断的是安装证书 是否存在 直接用了 问题12中的方法, 判断是有的
- 既然安装证书是存在的,打包也能正常执行,为啥显示
未包含安装证书
- 后来看到了 这个文章
https://blog.csdn.net/a940659387/article/details/79527006 - 暂时没有找到解决方法 只有重新新建一个项目打包提交审核了。。。
发布上线
登录 Google play
账号首页 https://myaccount.google.com/people-and-sharing
开发者申请 https://play.google.com/apps/publish/signup/ 点击继续 付款 $25 美金
填写账号信息 电话 邮箱 。。。。提交完成后就能登录 账号啦 https://play.google.com/apps/publish/
参考 --> 注册 Google Play 开发者帐号 https://support.google.com/googleplay/android-developer/answer/6112435?hl=zh-Hans
https://www.jianshu.com/p/7c97aa9c5fb6
https://www.jianshu.com/p/e40e78a279b7
参考
持续填坑中...