uni-app android离线SDK4.45版本离线打包问题
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描述
-
问题一:运行到自定义基座提示编译版本(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并运行成功
-
问题二:使用自定义基座启动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
- 通过上述步骤成功运行uniappx项目后,发现app安装完并启动后一直停留在splash界面,无法进入程序页面,尝试以下方法无效:
关于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.aar
、AndroidManifest.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官方文档或社区论坛获取更多帮助。