uni-app 离线打包方法(主要是使用android studio 调试代码,而不是使用云打包次数)
uni-app 离线打包方法(主要是使用android studio 调试代码,而不是使用云打包次数)
参考文档
uni-app x 原生 SDK Android 版
文档中的flatDir { dirs("./plugins/") }
单引号需要改成双引号,否则会报错
Uniappx 离线打包配置 社区这位老哥的文章配合官方的文档一起使用比较好。
华为 ScanKit Example
这里我参考的是DefaultView-kotlin
懒人版:直接下载我的示例项目。 android studio example
正式开始
下载 android studio 2023.2.1 Patch 2
最新版或许也可以,不过尽量保持一致好吧
记得安装到其他盘,c 盘足够大可以无视
修改 gradle 安装路径,c 盘足够大可以无视
先添加一下环境变量
点击左上角的图标,点击 File,点击 setting
找到 Gradle,替换路径点击 Apply,点击 OK
JDK
Gradle JDK 17
创建一个 hello world 项目
File->New->New Project
项目信息,尽量保持一致,点击 Finish
创建好之后就是这样的
修改一下Gradle Version 和 Android Gradle Plugin Version
点击File-> Project Structure
先换代理然后点击Sync Project with Gradle Files (这个应该就是拉依赖的意思)
https://mirrors.cloud.tencent.com/gradle/
启动项目先看看效果
图片中usb调试写错了use
good呀 启动成功了
创建uniappx模块
以下操作请打开官方文档操作,方便复制文字内容
官网文档
社区文档
复制SDK/libs 到 uniappx/libs
这里不要全部都复制,会报错,请按照官网说的来。图片说明我就不改了
在 uniappx下的build.gradle 文件中添加以下依赖
继续在 uniappx下的build.gradle 文件中添加 aaptOptions
将上面下载的sdk里的plugins文件夹复制到项目根目录(和uniappx同层)
在uniappx模块的build.gradle下添加插件io.dcloud.uts.kotlin的依赖
修改项目的settings.gradle
修改项目的gradle.properties
修改app模块下的AndroidMainfest.xml
修改uniappx模块下的AndroidMainfest.xml
继续修改app模块的build.gradle
到这里已经配置的差不多了,接下来配置uts模块插件,也就是我们的华为scanKit
新建uts模块
File->New->New Module
在项目的build.gradle中添加依赖
在x-scan模块的build.gradle中添加依赖
修改uniappx模块的build.gradle
修改app模块的build.gradle
继续修改settings.gradle 添加华为maven仓地址
修改x-scan模块下的AndroidMainfest.xml
最后打开hbuilderx
选择发行->app-android/ios 本地打包->生成本地打包app资源
然后只需要选择android即可
将与appid同名的文件夹复制到uniappx/src/main/assets/apps下
将unpackage/resources/app-android/uniappx/app-android/src下的所有文件复制到uniappx/src/main/java下
将unpackage/resources/app-android/uni_modules/x-scan/utssdk/app-android/src下的文件夹复制到
x-scan/src/main/java下
运行
用手机扫码测试出现扫码结果
正常情况下你可以在x-scan/src/main/java/index.kt中调试你的代码,然后同步到hbuilderx中,全部完成之后可以使用云打包项目即可
报错总结
-
Could not resolve all dependencies for configuration ‘:classpath’. 我这边是maven配置的地址将http改成https
-
Minimum supported Gradle version is 7.3.3. Current version is 5.6.4. 按照提示升级一下
-
使用chooseImage会报错
将uniappx sdk中的uni-media-release.aar复制到libs中即可。这里的libs就是上面说的libs
在uni-app中进行离线打包,特别是使用Android Studio进行调试,是一个相对复杂但必要的过程,特别是对于需要深度定制和优化应用性能的开发者。以下是一个基本的步骤和代码示例,展示如何完成这一过程。
步骤一:准备环境
-
安装Node.js和HBuilderX:确保你的开发环境中已经安装了Node.js和HBuilderX,HBuilderX是DCloud官方提供的开发工具,支持uni-app的开发。
-
安装Android Studio:下载并安装Android Studio,配置好Android SDK。
步骤二:生成离线打包资源
-
在HBuilderX中打开你的uni-app项目。
-
配置manifest.json:在
manifest.json
中配置应用的相关信息,如应用名称、版本、权限等。 -
发行 -> 原生App-云端打包 -> 生成本地打包App资源:在HBuilderX中选择“发行”菜单,然后选择“原生App-云端打包”,在下拉菜单中选择“生成本地打包App资源”。这将生成一个包含所有必要资源的zip文件。
步骤三:导入Android Studio
-
解压生成的zip文件。
-
在Android Studio中创建一个新的项目,选择“Import Project (Eclipse ADT, Gradle, etc.)”,然后选择解压后的文件夹中的
android
目录。 -
同步项目:Android Studio会自动同步Gradle构建脚本,下载依赖库。
步骤四:配置和调试
-
修改AndroidManifest.xml:根据需要修改AndroidManifest.xml中的配置,如添加权限、Activity等。
-
运行项目:连接一个Android设备或启动一个Android模拟器,点击Android Studio中的运行按钮,选择目标设备,开始调试。
示例代码片段
以下是一个简单的AndroidManifest.xml
配置示例,展示了如何添加网络权限:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.uniapp">
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
通过上述步骤和示例代码,你可以在Android Studio中成功导入并调试uni-app项目。注意,具体配置可能会根据你的项目需求有所不同。