uni-app 离线打包方法(主要是使用android studio 调试代码,而不是使用云打包次数)

发布于 1周前 作者 h691938207 来自 Uni-App

uni-app 离线打包方法(主要是使用android studio 调试代码,而不是使用云打包次数)

参考文档

uni-app x 原生 SDK Android 版 文档中的flatDir { dirs("./plugins/") }单引号需要改成双引号,否则会报错

uniappx - 离线自定义基座

Uniappx 离线打包配置 社区这位老哥的文章配合官方的文档一起使用比较好。

HMS Core 官网文档

华为 ScanKit Example 这里我参考的是DefaultView-kotlin

example插件地址

懒人版:直接下载我的示例项目。 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模块

以下操作请打开官方文档操作,方便复制文字内容
官网文档
社区文档

下载uniappx SDK

复制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中,全部完成之后可以使用云打包项目即可

报错总结

  1. Could not resolve all dependencies for configuration ‘:classpath’. 我这边是maven配置的地址将http改成https

  2. Minimum supported Gradle version is 7.3.3. Current version is 5.6.4. 按照提示升级一下

  3. 使用chooseImage会报错
    将uniappx sdk中的uni-media-release.aar复制到libs中即可。这里的libs就是上面说的libs


1 回复

在uni-app中进行离线打包,特别是使用Android Studio进行调试,是一个相对复杂但必要的过程,特别是对于需要深度定制和优化应用性能的开发者。以下是一个基本的步骤和代码示例,展示如何完成这一过程。

步骤一:准备环境

  1. 安装Node.js和HBuilderX:确保你的开发环境中已经安装了Node.js和HBuilderX,HBuilderX是DCloud官方提供的开发工具,支持uni-app的开发。

  2. 安装Android Studio:下载并安装Android Studio,配置好Android SDK。

步骤二:生成离线打包资源

  1. 在HBuilderX中打开你的uni-app项目

  2. 配置manifest.json:在manifest.json中配置应用的相关信息,如应用名称、版本、权限等。

  3. 发行 -> 原生App-云端打包 -> 生成本地打包App资源:在HBuilderX中选择“发行”菜单,然后选择“原生App-云端打包”,在下拉菜单中选择“生成本地打包App资源”。这将生成一个包含所有必要资源的zip文件。

步骤三:导入Android Studio

  1. 解压生成的zip文件

  2. 在Android Studio中创建一个新的项目,选择“Import Project (Eclipse ADT, Gradle, etc.)”,然后选择解压后的文件夹中的android目录。

  3. 同步项目:Android Studio会自动同步Gradle构建脚本,下载依赖库。

步骤四:配置和调试

  1. 修改AndroidManifest.xml:根据需要修改AndroidManifest.xml中的配置,如添加权限、Activity等。

  2. 运行项目:连接一个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项目。注意,具体配置可能会根据你的项目需求有所不同。

回到顶部