使用Cordova构建基于前端开发的安卓APP
Electron
简介
  Electron是一个使用JavaScript、HTML和CSS构建桌面应用程序的框架。 嵌入Chromium和Node.js到二进制的Electron允许您保持一个JavaScript代码代码库并创建在Windows、macOS和Linux上运行的跨平台应用
前往官方教程以查看快速入门
打包并分发
最快捷的打包方式是使用 Electron Forge
使用如下代码将Electron Forge添加到您应用的开发依赖中
| 1 | npm install --save-dev @electron-forge/cli | 
使用 Forge 的 make 命令来创建可分发的应用程序:
| 1 | npm run make | 
若提示缺少了@electron-forge/plugin-fuses模块,可使用如下代码安装后重新打包:
| 1 | npm install --save-dev @electron-forge/plugin-fuses | 
我们可以看到,经过此步骤后可以生成跨平台的桌面应用程序,但它并不能直接打包成安卓应用程序。不过,可以使用一些工具来将 Electron 应用程序打包成 Android 应用程序
Cordova
Cordova简介
  Apache Cordova,旧称 PhoneGap,是一款开放源代码的移动设备开发框架,旨在让开发者使用HTML、Javascript、CSS等Web APIs开发跨平台的移动设备应用程序
打包Android应用
1.在本地安装 Cordova 和 Android SDK(Android Studio + Gradle)
2.使用 Cordova 命令行工具创建一个新的 Cordova 项目,执行以下命令:
  其中,my-app是项目的目录名称,com.example.myapp是应用程序的包名称,MyApp是应用程序的名称
| 1 | cordova create my-app com.example.myapp MyApp | 
3.将 Electron 应用程序的所有文件复制到 Cordova 项目的 www 目录中,这是 Cordova 打包应用程序时使用的文件夹
4.执行以下命令以添加 Android 平台:
| 1 | cordova platform add android | 
5.执行以下命令以构建 Cordova 应用程序:
| 1 | cordova build android | 
相关错误
Ⅰ.软件版本
Gradle
| 1 | Deprecated Gradle features were used in this build, making it incompatible with Gradle 8.0. | 
由于以上关系,我在这里推荐前往下载Gradle v7.6.4。前往官方文档查看安装教程
JDK
与此同时,可能会存在以下报错:
| 1 | BUG! exception in phase 'semantic analysis' in source unit '_BuildScript_' Unsupported class file major version 65 | 
这个报错通常是由于 Gradle 版本不兼容导致的。Gradle 7.x 不支持 Java 16 中引入的 class 文件版本 65。可以将将 JDK 版本降低到支持 Gradle 7.x 的版本。由于JDK 8 存在一些过时的应用,在这里推荐使用 JDK 11。前往这里以下载
Ⅱ.环境变量
Android SDK
下载并安装完成Android Studio后,在More Actions - Android SDK - SDK Tools当中选择合适的版本Android SDK Build-Tools下载
在环境变量-系统变量当中,添加ANDROID_HOME的变量,变量值是SDK根目录
JAVA_HOME
下载并安装完成JAVA 11后,在环境变量-系统变量中新建JAVA_HOME变量,变量值是JDK路径,如C:\Program Files\Java\jdk-11
Ⅲ.配置文件
若出现.\platforms\android\app\build.gradle的如下问题:
| 1 | Could not find method namespace() | 
修复方式为将该行语句使用//注释化
| 1 | compileSdkVersion is not specified. Please add it to build.gradle | 
compileSdkVersion没有被指定。修改方法为将此句改为compileSdkVersion 33 // 此处指定你要使用的 SDK 版本
若出现.\platforms\android\app\src\main\AndroidManifest.xml的如下问题:
| 1 | Error while evaluating property 'buildConfigPackageName' of task ':app:generateDebugBuildConfig'. | 
  这个错误表明在生成调试版(debug)的构建配置时,Gradle 无法找到 Android 清单文件(AndroidManifest.xml)中的包名(package name)。这可能是因为 AndroidManifest.xml 中确实没有指定包名。请打开 AndroidManifest.xml 文件,查找 <manifest> 标签,并确保其中有一个 package 属性,类似于:package="com.example.myapp"。如果没有,请添加正确的包名
  该错误也会发生在.\platforms\android\CordovaLib\AndroidManifest.xml
Ⅳ.其它错误
对于Android SDK,可能会存在如下报错:
| 1 | Installed Build Tools is corrupted | 
提示找不到dx.bat文件。此时在你的Android SDK目录中找到build tools目录中的d8.bat,将文件名修改为dx.bat。同时,找到build tools目录中的lib/d8.jar,将文件名修改为dx.jar