HarmonyOS 鸿蒙Next中关于兼容低版本API应用的问题

HarmonyOS 鸿蒙Next中关于兼容低版本API应用的问题 我现在有个需求,需要兼容的平板的API版本8。是电脑连接平板的后使用下面指令查到的:

hdc shell
getprop hw_sc.build.os.apiversion
#结果返回8

DevEco Studio是在https://developer.huawei.com/consumer/cn/deveco-studio/archive/下载的devecostudio-windows-3.1.0.501.zip。

我的目标是只需要兼容这个API8版本的平板,于是我在创建项目的时候是如下操作:

方式一:

cke_15722.png

创建项目的时候选择Compile SDK选择8,但是这时候发现Device type没有tablet选项了。

方式二:

cke_29400.png

创建项目的时候选择Compile SDK选择9。

这两种方式我都试过后续该成能兼容目标平板的配置去尝试运行,方式一创建的项目我在config.json中的

deviceType

增加tablet以支持平板。最后我用尝试安装模拟器的时候,发现:

cke_86861.png

cke_77298.png

目前DevEco Studio3.1的模拟器没有tablet平板选项,于是我就想着用phone先跑一下代码。新建phone模拟器的时候,我又发现,这个版本的IDE有9和6,但是又没有api8的模拟器,让人摸不着头脑。

于是我尝试方式二,然后将方式二创建的项目中的build-profile.json5中的:

"compileSdkVersion": 8,
"compatibleSdkVersion": 8,

这两个原本默认是9的,改成8,IDE就提示有变动,需进行同步:

cke_200854.png

于是我就点了Sync Now,然后又出现如下问题:

cke_216940.png

于是我检查了方式二创建的hvigor-config.json5中的配置,如下:

{
  "hvigorVersion": "2.4.2",
  "dependencies": {
    "@ohos/hvigor-ohos-plugin": "2.4.2"
  }
}

到现在,我想请问,我应该怎么正确的创建一个兼容API8版本的平板项目,研究了几天,越弄头越云,怎么感觉好乱,请大佬们帮忙解答一下我的疑惑。我的目标平板关于平板里的版本信息:

关于平板:

harmony os版本:4.3.0(ENTC829E110R1P1)GPU Turbo。

内核版本:5.10.43


更多关于HarmonyOS 鸿蒙Next中关于兼容低版本API应用的问题的实战教程也可以访问 https://www.itying.com/category-93-b0.html

8 回复

背景知识:

楼主,你需要兼容api8的话,只需要开发Android app就行了,api8版本是支持apk包的。如果楼主需要开发纯血鸿蒙App 是在 鸿蒙系统5.0 (API12 )。可以使用最新版本的 DevEcoStudio 6.0.1 release

问题解决:

如果开发api12(不含)以下,直接使用Andorid项目就好了。

如果需要开发纯血鸿蒙应用就需要将项目升级到api12(含)以上。

更多关于HarmonyOS 鸿蒙Next中关于兼容低版本API应用的问题的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


是的,API 8 支持使用 ArkTS 进行开发。

可以开发,但是现在不建议用api8,目前最新版本都api21了,如果你用api8开发后续升级也会有问题(代码语法有变动)。所以现在开始开发就用最新的api来开发,这样就不会有后续代码无法问题了。

建议使用API 6 API 6对应版本为HarmonyOS 2.2.0及以上版本

4.3是API9,

那我应该用3.0吗?,

鸿蒙Next采用API级别管理,应用需指定目标API版本。低版本API应用需适配新API,否则可能无法运行。开发者需更新应用至支持的最低API级别,确保功能兼容。系统提供API差异文档指导迁移。

根据你的描述,你的目标设备是一台运行HarmonyOS 4.3.0、API版本为8的平板。你遇到的问题核心在于DevEco Studio 3.1.0.501的项目创建模板和模拟器管理器的版本选项与你的目标设备不完全匹配。

以下是针对你情况的明确分析和解决方案:

1. 项目创建的正确方式 你遇到的“选择Compile SDK为8时无Tablet选项”是正常的。在DevEco Studio的早期模板中,API 8可能主要与手机(Phone)设备类型绑定。但这不影响你开发兼容API 8平板的应用。

正确操作是采用你的“方式二”

  • 在创建项目时,Compile SDK选择当前IDE支持的最高版本(例如9)。这会确保你能使用最新的开发工具链和语法。
  • Model选择Phone。这个选项在项目创建阶段主要影响初始模板,后续可以修改。

2. 关键配置修改 创建项目后,需要修改build-profile.json5文件来精确匹配你的目标设备:

{
  "app": {
    "signingConfigs": [],
    "products": [
      {
        "name": "default",
        "signingConfig": "default",
        "compileSdkVersion": 9, // 保持与创建时一致,使用高版本编译
        "compatibleSdkVersion": 8, // 关键:设置应用兼容的最低API版本为8
        "targetSdkVersion": 8 // 关键:设置应用目标API版本为8
      }
    ],
    ...
  }
}

同时,在module.json5文件中,确保deviceTypes包含"tablet"

{
  "module": {
    ...
    "deviceTypes": [
      "phone",
      "tablet" // 确保包含平板类型
    ],
    ...
  }
}

compileSdkVersion (设为9) 决定你用哪个SDK版本编译代码。compatibleSdkVersiontargetSdkVersion (均设为8) 声明你的应用兼容并针对API 8设计,系统会据此进行兼容性行为适配。

3. 关于模拟器(Previewer)问题 DevEco Studio的本地模拟器(Previewer)列表可能不提供API 8的选项,这属于正常情况。模拟器版本旨在覆盖主流测试版本,可能不包含所有历史API版本。

对于你的情况:

  • 开发与调试:你可以使用API 9的Phone或Tablet模拟器进行大部分代码的逻辑和UI预览。只要你的代码不使用API 9独有的特性(即仅使用API 8及以下的功能),在兼容性设置正确的情况下,行为应该是一致的。
  • 真机验证这是最关键的一步。任何涉及API级别特定行为的最终测试,特别是与你的目标平板(API 8)相关的功能,都必须在真实物理设备上进行安装和验证。请通过USB连接你的平板,在DevEco Studio中选择该真机作为运行目标进行调试和测试。

4. 同步失败问题 你遇到的hvigor-ohos-plugin版本同步失败,通常是因为项目配置的插件版本与本地环境不匹配。可以尝试以下步骤:

  • 检查项目根目录hvigor文件夹下的hvigor-wrapper.properties文件,查看指定的hvigorVersion
  • 更直接的方法是:在DevEco Studio中,点击菜单栏 File > Sync and Refresh Project 或使用同步快捷键(通常为Ctrl/Cmd + Alt + Y)进行完整同步。IDE会自动处理所需的依赖。

总结操作步骤:

  1. Compile SDK 9Model: Phone创建新项目。
  2. 修改build-profile.json5,将compatibleSdkVersiontargetSdkVersion设为8
  3. 修改module.json5,在deviceTypes中添加"tablet"
  4. 进行Sync and Refresh Project
  5. 开发时使用API 9模拟器预览,但最终务必在API 8的真实平板上进行安装和功能测试。

这样配置后,你的应用将以API 9的SDK编译,但声明其兼容并针对API 8,从而能够在你的目标平板上正常运行。

回到顶部