编译uniapp过程中,遇到的各种踩坑记录(特别提示:前面小坑不断,请谨慎行走)。
首先,准备好我们的uniapp项目,然后,进入 https://dev.dcloud.net.cn/ 开发者中心,我的应用,先建立一个uniapp应用(是uniapp而不是5+应用)。
建立成功后,点击应用名称,切换到Android云端证书选项卡,点击生成证书。其实证书可以本地生成的,但是涉及后续操作有点麻烦,我们要追求效率,所以,哪个简单、快,就选哪个。
生成证书是异步生成的,一时间没有那么快,我们这个时间返回本地的HBuilderX,准备一张1024X1024规格LOGO图,还有一张1080x1882启动界面图,配置mainifest.json,LOGO可以一键生成相应的尺寸,启动图的话用PS来进行加工,或者直接都选这个图片。UNIAPP应用标识如果无法填写,那么点最下面的源码视图,直接改我们刚才建立的uniapp应用的appid。配置好后,点击HBuilderX界面菜单中的“发行 -> App Android/Ios-本地打包(L) -> 生成本地打包资源”,等待一段时间后,编译成功进入下一步。
安装Android studio,进入官网 https://developer.android.google.cn/studio?hl=zh-cn 下载android studio(这个下载还是很快的,完全不需要去其它第三方网站去下载,下载了还不一定能用)。下载后,安装完成,直接启动,会要求下载一个Android sdk,直接默认下载即可,速度还是很快。下载完成后,为我们的封装创建项目文件夹,然后到uniapp 官方 https://nativesupport.dcloud.net.cn/AppDocs/usesdk/android.html 下载一个离线SDK,下载后解压,注意,下载前对照一下HBuilderX的版本号,是否与这个SDK的版本号一致,不一致的话升级一下HBuilderX或者下载对应的SDK。
SDK下载完成后,解压,复制 HBuilder-Integrate-AS 目录下的文件到我们创建的项目文件夹里面,然后将刚才编译好的打包资源复制到项目文件夹中的 simpleDemo\src\main\assets\apps。
此时的你,可能发现一个问题,Android studio是英文版,感觉还是作为母语的中文更亲切。于是,赶紧去找一个中文语言包 https://plugins.jetbrains.com/plugin/index?xmlId=com.intellij.zh 这边可以获取到中文语言包。点击菜单Help,获取android studio内部版本号,#AI-.****,记住前面的3个版本号,然后查找语言包相对应的语言包,下载下来,解压后找到版本对应的".jar"文件。返回android studio打开菜单选择“Configure” -> “Settings” -> “Plugin” 这个是插件管理的,找到“install plugin from disk”,然后就是安装。这里很多博主都是说重启一个android studio就可以了,结果,你会发现毛用都没用。有些会说在“Editor”选项卡下,选择“General”会看到一个“Language”选项,还有的说在“Appearance & Behavior” > “Appearance”里面有个“Language”项。但是你试了,发现一个都没用。其实就在“Appearance & Behavior” > “System settings” 下面有个“Language”才是对的,很多都是误导人的。选择中文后,会提示需要重启android studio,重启即可,绝对真实有效。
此时,我们继续下一步,配置项目,返回 uniapp 开发者中心 应用列表,进入我们创建应用 -> android云端证书选项卡 下载证书同时记录证书密码。将证书 ********.keystore复制到 我们的项目 “simpleDemo”目录下面,编辑 “simpleDemo\build.gradle”
编辑 ““simpleDemo\src\main\assets\data\dcloud_control.xml” 将应用的appid填入。
编辑 ““simpleDemo\src\main\AndroidManifest.xml” 将应用的包名进行更改。
打开Android Studio 找到新建 -> import project导入,我们在使用 Android Studio 来开发 Android 工程的过程中,gradle是不可绕开的。查了一下百科,Gradle是一個基於Apache Ant和Apache Maven概念的專案自動化建構工具。Gradle 構建指令碼使用的是 Groovy 或 Kotlin 的特定領域語言來編寫的。改良了過去 Maven、Ant 帶給開發者的問題,至今也成為 Android Studio 內建的封裝佈署工具。那么我们知道,在android studio中,是通过这个Gradle进行封装的,它非常非常重要就是了。但是当我们导入应用时,发现一个问题,默认导入时真的非常非常慢,根本就导入不了。
于是,继续找解决方法,从网络找的方法都是千篇一律,就是改build.gradle的repositories块,根本解决不了,还是一样的慢。别一种方法是直接到 https://services.gradle.org/distributions/ 下载相应的安装包,然后你发现,还是一样慢,根本不行。最后,就是直接改“@root\gradle\gradle-wrapper.properties” 中的 distributionUrl 然后,一下就通过了,推荐使用华为镜像,因为用阿里的时候发现好多版本的Gradle是没有的,而在华为镜像是有的。下一步,就是改这个“@root\build.gradle”,这个 “com.android.tools.build:gradle” 与 “Gradle”的版本要相对应,然后“Gradle”版本要与jdk版本相对应。
这边有个差不多的对照表 https://developer.android.com/build/releases/gradle-plugin?hl=zh-cn。如果存在无法下载的插件,那么把插件安装在本地仓库使用命令行:
mvn install:install-file -Dfile=-...jar -DpomFile=-...pom
这些问题都解决就没有什么问题了,点击菜单“构建” -> “Build App”