使用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