creator3.6.2如何打包HarmonyOS的32位包

  • Creator 版本: 3.6.2

  • 目标平台: HarmonyOS

  • 重现方式:正常打包流程,发现默认只能生成64位包(在鸿蒙手机上运行正常),因为需要支持32位的华为watch3手表,在build.gradle中修改externalNativeBuild,在“arm64-v8a”之后追加了一个“armeabi-v7a”,

  • 首个报错:
    CMake Error in CMakeLists.txt:
    Imported target “v8_inspector” includes non-existent path

    “F:/CocosCreatorEngine/3.6.2/resources/resources/3d/engine/native/external/cmake/…/ohos/armeabi-v7a/include/v8”

    in its INTERFACE_INCLUDE_DIRECTORIES. Possible reasons include:

    • The path was deleted, renamed, or moved to another location.

    • An install or uninstall procedure did not complete successfully.

    • The installation package was faulty and references files it does not
      provide.
      CMake Generate step failed. Build files cannot be regenerated correctly.
      Cmake thread
      org.gradle.api.GradleException: native build cmake execute failed
      at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
      at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
      at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
      at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:490)
      at org.codehaus.groovy.reflection.CachedConstructor.invoke(CachedConstructor.java:72)
      at org.codehaus.groovy.runtime.callsite.ConstructorSite$ConstructorSiteNoUnwrapNoCoerce.callConstructor(ConstructorSite.java:105)
      at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallConstructor(CallSiteArray.java:59)
      at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callConstructor(AbstractCallSite.java:263)
      at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callConstructor(AbstractCallSite.java:277)
      at com.huawei.ohos.build.utils.ProcessUtils.processWait(ProcessUtils.groovy:115)
      at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
      at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      at java.base/java.lang.reflect.Method.invoke(Method.java:566)
      at org.codehaus.groovy.runtime.callsite.PlainObjectMetaMethodSite.doInvoke(PlainObjectMetaMethodSite.java:43)
      at org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite$PogoCachedMethodSiteNoUnwrapNoCoerce.invoke(PogoMetaMethodSite.java:193)
      at org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite.callCurrent(PogoMetaMethodSite.java:61)
      at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallCurrent(CallSiteArray.java:51)
      at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:171)
      at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:203)
      at com.huawei.ohos.build.utils.ProcessUtils.execute(ProcessUtils.groovy:79)
      at com.huawei.ohos.build.utils.ProcessUtils.execute(ProcessUtils.groovy)
      at com.huawei.ohos.build.utils.ProcessUtils$execute$4.callCurrent(Unknown Source)
      at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallCurrent(CallSiteArray.java:51)
      at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:171)
      at com.huawei.ohos.build.utils.ProcessUtils.execute(ProcessUtils.groovy:52)
      at com.huawei.ohos.build.utils.ProcessUtils$execute$2.callCurrent(Unknown Source)
      at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallCurrent(CallSiteArray.java:51)
      at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:171)
      at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:203)
      at com.huawei.ohos.build.utils.ProcessUtils.execute(ProcessUtils.groovy:48)
      at com.huawei.ohos.build.utils.ProcessUtils$execute.call(Unknown Source)
      at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:47)
      at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:125)
      at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:148)
      at com.huawei.ohos.build.dsl.CmakeThread.executeCmakeBuild(CmakeThread.groovy:104)
      at com.huawei.ohos.build.dsl.CmakeThread.run(CmakeThread.groovy:64)
      Exception in thread “Thread-70” org.gradle.api.GradleException: native build cmake execute failed
      at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
      at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
      at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
      at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:490)
      at org.codehaus.groovy.reflection.CachedConstructor.invoke(CachedConstructor.java:72)
      at org.codehaus.groovy.runtime.callsite.ConstructorSite$ConstructorSiteNoUnwrapNoCoerce.callConstructor(ConstructorSite.java:105)
      at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallConstructor(CallSiteArray.java:59)
      at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callConstructor(AbstractCallSite.java:263)
      at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callConstructor(AbstractCallSite.java:277)
      at com.huawei.ohos.build.utils.ProcessUtils.processWait(ProcessUtils.groovy:115)
      at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
      at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      at java.base/java.lang.reflect.Method.invoke(Method.java:566)
      at org.codehaus.groovy.runtime.callsite.PlainObjectMetaMethodSite.doInvoke(PlainObjectMetaMethodSite.java:43)
      at org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite$PogoCachedMethodSiteNoUnwrapNoCoerce.invoke(PogoMetaMethodSite.java:193)
      at org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite.callCurrent(PogoMetaMethodSite.java:61)
      at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallCurrent(CallSiteArray.java:51)
      at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:171)
      at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:203)
      at com.huawei.ohos.build.utils.ProcessUtils.execute(ProcessUtils.groovy:79)
      at com.huawei.ohos.build.utils.ProcessUtils.execute(ProcessUtils.groovy)
      at com.huawei.ohos.build.utils.ProcessUtils$execute$4.callCurrent(Unknown Source)
      at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallCurrent(CallSiteArray.java:51)
      at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:171)
      at com.huawei.ohos.build.utils.ProcessUtils.execute(ProcessUtils.groovy:52)
      at com.huawei.ohos.build.utils.ProcessUtils$execute$2.callCurrent(Unknown Source)
      at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallCurrent(CallSiteArray.java:51)
      at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:171)
      at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:203)
      at com.huawei.ohos.build.utils.ProcessUtils.execute(ProcessUtils.groovy:48)
      at com.huawei.ohos.build.utils.ProcessUtils$execute.call(Unknown Source)
      at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:47)
      at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:125)
      at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:148)
      at com.huawei.ohos.build.dsl.CmakeThread.executeCmakeBuild(CmakeThread.groovy:104)
      at com.huawei.ohos.build.dsl.CmakeThread.run(CmakeThread.groovy:64)

Task :entry:compileDebugNativeWithCmake FAILED

FAILURE: Build failed with an exception.

  • What went wrong:
    Execution failed for task ‘:entry:compileDebugNativeWithCmake’.

native build cmake execute failed

  • 之前哪个版本是正常的:
  • 手机型号:
  • 手机浏览器:
  • 编辑器操作系统:
  • 重现概率:

请教大佬应该如何修改才能打包成可运行的32位hap包

还是让大佬回答你吧

发现CocosCreatorEngine\3.6.2\resources\resources\3d\engine\native\external\ohos
该目录下,只有arm64-v8a和x86_64,看样子是不支持了,唉

你好,HarmonyOS还不支持32位系统,第三方库没有还没支持,所以会导致编译失败

是的,目前推出的OpenHarmony社区版本可以支持。