uni-app android离线SDK4.45版本离线打包问题

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

uni-app android离线SDK4.45版本离线打包问题

产品分类

uniapp/App

开发环境信息

项目 详情
PC开发环境操作系统 Windows
PC开发环境操作系统版本号 Windows 11 家庭中文版 23H2
HBuilderX类型 正式
HBuilderX版本号 4.45
手机系统 Android
手机系统版本号 Android 11
手机厂商 OPPO
手机机型 OPPO K5
页面类型 vue
vue版本 vue3
打包方式 离线
项目创建方式 HBuilderX

示例代码

Hbuilder运行日志

15:02:34.080 uni统计,全端、开源、强大的统计系统,真正帮助开发者有效运营,详情
15:02:34.101 项目 whtb-app 开始编译
15:02:38.197 请注意运行模式下,因日志输出、sourcemap 以及未压缩源码等原因,性能和包体积,均不及发行模式。
15:02:38.198 编译器版本:4.45(uni-app x)
15:02:38.198 正在编译中...
15:02:53.556 uts插件[whtbe]文件未发生变化,跳过编译
15:02:54.714 检测到编译缓存有效,跳过编译。详见:https://uniapp.dcloud.net.cn/uni-app-x/compiler/#cache
15:02:54.714 项目 whtb-app 编译成功。
15:02:54.725 ready in 19548ms.
15:02:54.832 正在建立手机连接...
15:02:55.268 正在安装手机端自定义基座...
15:03:04.825 安装自定义基座App完成
15:03:07.653 正在同步手机端程序文件...
15:03:07.821 同步手机端程序文件完成
15:03:08.819 正在启动自定义基座...
15:03:10.590 应用【whtb-app】已启动

操作步骤

重新下载不同版本的离线SDK和对应版本得Hbuilder重复制作自定义基座流程

预期结果

从splash进入项目界面,标准基座和云打包自定义基座可正常进入

实际结果

停留在splash页面无法进入项目

bug描述

  1. 问题一:运行到自定义基座提示编译版本(4.45)与自定义基座版本不一致

    • 使用最新离线SDK 4.45打包基座(gradle-tool:8.7.3、gradle-8.11.1-bin、compileSdkVersion35、targetSdkVersion33)
    • 使用Hbuilder4.45创建新uniappx项目并使用自有证书申请appkey,并生成本地打包APP资源复制到离线SDK中simpleDemo apps目录下,配置AndroidManifest、dcloud_control配置
    • 生成apk并复制到uniappx项目debug目录下,Hbuilderx 运行到Android App基座-自定义基座,发现基座信息中只有包名和修改时间,未显示uniRuntimeVersion,运行Hbuilderx提示编译版本(4.45)与自定义基座版本不一致
    • 通过对云打包基座反编译,在simpleDemo资源目录下增加uni-app-x目录并增加version.json增加uniRuntimeVersion配置,重新打包apk后在运行到自定义基座发现加载出了uniRuntimeVersion并运行成功
  2. 问题二:使用自定义基座启动uniappx项目后停留在 splash 页面

    • 通过上述步骤成功运行uniappx项目后,发现app安装完并启动后一直停留在splash界面,无法进入程序页面,尝试以下方法无效:
      • 方法一:降低targetSdkVersion30、31、32、34、35
      • 方法二:修改webkit版本1.3.0、1.5.0、1.6.0
      • 方法三:降低lib.5plus.base-release版本4.28、4.29
      • 方法四:切换离线SDK及Hbuilder版本4.45、4.44、4.36

1 回复

关于uni-app在Android平台使用4.45版本的离线SDK进行离线打包的问题,这里提供一个基础的代码案例和配置流程,帮助你更好地理解和执行离线打包过程。请注意,实际操作中可能需要根据具体项目需求进行相应调整。

1. 准备环境

确保你的开发环境中已经安装了以下工具:

  • HBuilderX(支持uni-app开发的IDE)
  • Android Studio(用于Android项目的构建和调试)
  • JDK(Java开发工具包)
  • Android SDK(包含必要的构建工具和API级别)

2. 下载并配置离线SDK

从DCloud官网下载uni-app Android离线SDK 4.45版本,解压后你将得到一系列文件和文件夹,包括uni-app-release.aarAndroidManifest.xml模板等。

3. 创建Android项目

在Android Studio中创建一个新的Android项目,或者在现有项目中集成uni-app的离线SDK。

4. 集成SDK

将下载的uni-app-release.aar文件复制到Android项目的libs目录下,并在项目的build.gradle文件中添加对该AAR文件的依赖:

dependencies {
    implementation fileTree(dir: "libs", include: ["*.aar"])
    // 其他依赖项...
}

5. 配置AndroidManifest.xml

将提供的AndroidManifest.xml模板中的必要权限和服务声明复制到你的项目中的AndroidManifest.xml文件中。

6. 配置资源文件

将uni-app打包生成的资源文件(如www目录、manifest.json等)复制到Android项目的assets目录下。

7. 修改Activity

在你的Android项目中,修改主Activity以启动uni-app的WebView:

import io.dcloud.feature.uniapp.bridge.UniJSCallback;
import io.dcloud.feature.uniapp.common.UniModuleContext;
import io.dcloud.feature.uniapp.view.UniAppView;

public class MainActivity extends AppCompatActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        UniAppView uniAppView = findViewById(R.id.uni_app_view);
        uniAppView.loadApp("file:///android_asset/www/");
    }
}

在布局文件activity_main.xml中添加UniAppView

<io.dcloud.feature.uniapp.view.UniAppView
    android:id="@+id/uni_app_view"
    android:layout_width="match_parent"
    android:layout_height="match_parent"/>

8. 构建项目

使用Android Studio构建并运行你的项目,确保一切配置正确,uni-app内容能够正确加载和显示。

通过上述步骤,你应该能够成功地将uni-app项目使用4.45版本的离线SDK在Android平台上进行离线打包。如果遇到具体问题,建议查阅DCloud官方文档或社区论坛获取更多帮助。

回到顶部