环境及配置

JDK 依赖

zulu jdk 下载: https://www.azul.com/downloads/zulu-community/?architecture=x86-64-bit&package=jdk

由于 oracle jdk 开始收费,我们已经开始使用 openjdk 或 zulujdk
使用 openjdk 遇到证书问题:the trustAnchors parameter must be non-empty
转用 zulu jdk 即解决


如何使用 Android studio 打开 cordova Android项目

参考链接:https://medium.com/@gotoark/how-to-run-cordova-projects-in-android-studio-8f41bdf52be3


调试cordova Android

使用 Android Studio 调试 cordova Android app

请先安装好 Android studio,同时安装好 Android 模拟器

cordova-note.jpg
(如上图)使用Android 调试设备

cordova-note.jpg
(如上图)为设备设置开发者模式

cordova-note.jpg
(如上图)使用Chrome 远程调试 cordova app html

*注意 使用Chrome 远程调试设备时,可能会出现 HTTP 1.0 not found, 则需要开启代理翻墙即可,参考:戳我


遇到的问题列表

使用 cordova create MyApp 命令时报以下错误

1
2
3
4
5
D:\Levana.Xue\temp>cordova create MyApp
Creating a new cordova project.
{ Error: npm: Command failed with exit code 1 Error output:
npm ERR! code ENOLOCAL
npm ERR! Could not install from "..\..\..\Roaming\npm\node_modules\cordova\node_modules\_cordova-app-hello-world@4.0.0@cordova-app-hello-world\index.js" as it does not contain a package.json file.

原因:

前段时间更新了 nodejs 版本大升级,一直使用 cnpm 安装相关包,使用未同步升级的 cnpm 安装cordova,然后使用 cordova create app 命令时就会报错
解决方法
使用 npm 安装 cordova, 即可正常创建


jpg 改 png

app 内图标需png类型,但客户给出jpg,因此需要改为png
直接更改后缀为png
1.cordova Android 无法打包
2.cordova ios 可以正常打包,但是无法通过apple 审核上架
解决:需从程序方面转为png类型后正常


Cordova IOS input.focus() 无法弹出键盘

参考: https://stackoverflow.com/questions/11843166/document-getelementbyidmycontrol-focus-not-working-in-phonegap?newreg=032c0e6c544b4e14a8d4b5d80cac1f7b

1
2
3
# https://cordova.apache.org/docs/en/5.1.1/guide/platforms/ios/config.html
<preference name="KeyboardDisplayRequiresUserAction" value="false"/>
# KeyboardDisplayRequiresUserAction(布尔值,默认为true):设置为false允许在调用focus()表单输入时出现键盘

Error: cleartext not permitted

Cordova-App-Error.jpg

背景:Cordova App Android

解决方案,参考链接:https://blog.csdn.net/gengkui9897/article/details/82863966


无法下载 gradle-6.5-all.zip

问题现象

问题如下,复制 URL 到浏览器,可以下载,cmd命令窗口 无法下载

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Subproject Path: app
Downloading https://services.gradle.org/distributions/gradle-6.5-all.zip

Exception in thread "main" java.io.IOException: Unable to tunnel through proxy. Proxy returns "HTTP/1.1 400 Bad Request"
at sun.net.www.protocol.http.HttpURLConnection.doTunneling(HttpURLConnection.java:2084)
at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:183)
at sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1512)
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1440)
at sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.java:254)
at org.gradle.wrapper.Download.downloadInternal(Download.java:87)
at org.gradle.wrapper.Download.download(Download.java:67)
at org.gradle.wrapper.Install$1.call(Install.java:68)
at org.gradle.wrapper.Install$1.call(Install.java:48)
at org.gradle.wrapper.ExclusiveFileAccessManager.access(ExclusiveFileAccessManager.java:69)
at org.gradle.wrapper.Install.createDist(Install.java:48)
at org.gradle.wrapper.WrapperExecutor.execute(WrapperExecutor.java:107)
at org.gradle.wrapper.GradleWrapperMain.main(GradleWrapperMain.java:63)
Command failed with exit code 1: D:\Levana2\MyApp\platforms\android\gradlew cdvBuildDebug -b D:\Levana2\MyApp\platforms\android\build.gradle

解决方案

A

找到用户目录:C:\Users\[username]\.gradle\wrapper\dists\gradle-6.5-all\2oz4ud9k3tuxjg84bbf55q0tn
#[username] 电脑登入名称
以上面 问题为例,下载版本是 6.5,即会在上面目录产生该路径
解决步骤如下

  1. 复制 url 手动下载 zip文件
  2. 将 zip文件 放置 C:\Users[username].gradle\wrapper\dists\gradle-6.5-all\2oz4ud9k3tuxjg84bbf55q0tn 目录下
  3. 再次执行命令即可

A 方案,未能最终解决,需使用B

B

原因是由于文件 C:\Users***.gradle\gradle.properties 中,设置了代理 proxy

1
2
3
4
systemProp.https.proxyPort=80
systemProp.http.proxyHost=mirrors.neusoft.edu.cn
systemProp.https.proxyHost=mirrors.neusoft.edu.cn
systemProp.http.proxyPort=80

参考链接:https://www.jianshu.com/p/e0ba79c83183