HarmonyOS 鸿蒙Next 运行Native的sample过程中NativeLayer无法成功

HarmonyOS 鸿蒙Next 运行Native的sample过程中NativeLayer无法成功 报错如下:

  • Exception is:

org.gradle.api.tasks.TaskExecutionException: Execution failed for task ‘:entry:compileDebugNativeWithCmake’.

at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.lambda$executeIfValid$1(ExecuteActionsTaskExecuter.java:145)

at org.gradle.internal.Try$Failure.ifSuccessfulOrElse(Try.java:282)

at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeIfValid(ExecuteActionsTaskExecuter.java:143)

at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:131)

at org.gradle.api.internal.tasks.execution.CleanupStaleOutputsExecuter.execute(CleanupStaleOutputsExecuter.java:77)

at org.gradle.api.internal.tasks.execution.FinalizePropertiesTaskExecuter.execute(FinalizePropertiesTaskExecuter.java:46)

at org.gradle.api.internal.tasks.execution.ResolveTaskExecutionModeExecuter.execute(ResolveTaskExecutionModeExecuter.java:51)

at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:57)

at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:56)

at org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:36)

at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.executeTask(EventFiringTaskExecuter.java:77)

at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:55)

at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:52)

at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:204)

at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:199)

at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:66)

at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:59)

at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:157)

at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:59)

at org.gradle.internal.operations.DefaultBuildOperationRunner.call(DefaultBuildOperationRunner.java:53)

at org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:73)

at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter.execute(EventFiringTaskExecuter.java:52)

at org.gradle.execution.plan.LocalTaskNodeExecutor.execute(LocalTaskNodeExecutor.java:74)

at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:402)

at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:389)

at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:382)

at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:368)

at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.lambda$run$0(DefaultPlanExecutor.java:127)

at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.execute(DefaultPlanExecutor.java:191)

at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.executeNextNode(DefaultPlanExecutor.java:182)

at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.run(DefaultPlanExecutor.java:124)

at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64)

at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:48)

at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:61)

Caused by: 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 com.huawei.ohos.build.utils.ProcessUtils.processWait(ProcessUtils.groovy:127)

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 com.huawei.ohos.build.utils.ProcessUtils.execute(ProcessUtils.groovy:90)

at com.huawei.ohos.build.utils.ProcessUtils.execute(ProcessUtils.groovy)

at com.huawei.ohos.build.utils.ProcessUtils$execute$1.callCurrent(Unknown Source)

at com.huawei.ohos.build.utils.ProcessUtils.execute(ProcessUtils.groovy:63)

at com.huawei.ohos.build.utils.ProcessUtils$execute$0.callCurrent(Unknown Source)

at com.huawei.ohos.build.utils.ProcessUtils.execute(ProcessUtils.groovy:59)

at com.huawei.ohos.build.utils.ProcessUtils$execute.call(Unknown Source)

at com.huawei.ohos.build.dsl.CmakeThread.executeCmakeBuild(CmakeThread.groovy:109)

at com.huawei.ohos.build.dsl.CmakeThread.run(CmakeThread.groovy:60)

更多关于HarmonyOS 鸿蒙Next 运行Native的sample过程中NativeLayer无法成功的实战教程也可以访问 https://www.itying.com/category-93-b0.html

6 回复

// Top-level build file where you can add configuration options common to all sub-projects/modules.

apply plugin: ‘com.huawei.ohos.app’

//For instructions on signature configuration, see https://developer.harmonyos.com/cn/docs/documentation/doc-guides/ide_debug_device-0000001053822404#section1112183053510

ohos { signingConfigs { debug { storeFile file(‘C:\Users\z.liang\.ohos\config\auto_debug_nativelayer_150086000133260241.p12’) storePassword ‘0000001B202C89A166E9249AECD9C0E9A89388E227A501B2532DA0476B3665EF0A404917358154BB1CAB3B’ keyAlias = ‘debugKey’ keyPassword ‘0000001B0B62CEBC0ECD23FFA8FDDD12A475FA2048807E0FC4E20CCD214581E108AEE5E350A3160632AB8E’ signAlg = ‘SHA256withECDSA’ profile file(‘C:\Users\z.liang\.ohos\config\auto_debug_nativelayer_150086000133260241.p7b’) certpath file(‘C:\Users\z.liang\.ohos\config\auto_debug_nativelayer_150086000133260241.cer’) } } compileSdkVersion 6 defaultConfig { compatibleSdkVersion 5 } }

buildscript { repositories { maven { url ‘https://repo.huaweicloud.com/repository/maven/’ } maven { url ‘https://developer.huawei.com/repo/’ } } dependencies { classpath ‘com.huawei.ohos:hap:3.0.5.11’ } }

allprojects { repositories { maven { url ‘https://repo.huaweicloud.com/repository/maven/’ } maven { url ‘https://developer.huawei.com/repo/’ } } }

更多关于HarmonyOS 鸿蒙Next 运行Native的sample过程中NativeLayer无法成功的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


看着也没啥问题,你把sample地址发一下,我自己试试!

麻烦提供下DevEco Studio版本,sdk版本和build.gradle里面构建插件的版本!

DevEco Studio 3.0 Beta4

apply plugin: 'com.huawei.ohos.hap' //For instructions on signature configuration, see https://developer.harmonyos.com/cn/docs/documentation/doc-guides/ide_debug_device-0000001053822404#section1112183053510
ohos {
    compileSdkVersion 6
    defaultConfig {
        compatibleSdkVersion 5
    }
    buildTypes {
        release {
            proguardOpt {
                proguardEnabled false
                rulesFiles 'proguard-rules.pro'
            }
        }
    }
    externalNativeBuild {
        path "src/main/cpp/CMakeLists.txt"
        arguments "-v"
        abiFilters "arm64-v8a"
        cppFlags ""
    }
}
dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar', '*.har'])
}
classpath 'com.huawei.ohos:hap:'

针对“HarmonyOS 鸿蒙Next 运行Native的sample过程中NativeLayer无法成功”的问题,可能的原因及解决方案如下:

  1. 环境配置问题

    • 确认已正确安装并配置了鸿蒙开发环境,包括SDK、NDK等。
    • 检查环境变量是否设置正确,确保编译器、链接器等工具链路径无误。
  2. 代码或资源文件错误

    • 检查NativeLayer相关的源代码,确认无语法错误、逻辑错误或资源文件缺失。
    • 验证Native代码与鸿蒙系统的兼容性,特别是API调用部分。
  3. 编译与链接问题

    • 确认编译命令和链接命令是否正确,包括指定的目标架构、编译选项等。
    • 检查编译输出和链接输出,查找可能的错误信息或警告。
  4. 运行时问题

    • 使用调试工具(如gdb)对NativeLayer进行调试,查看程序崩溃或挂起的具体位置。
    • 检查系统日志或应用日志,查找可能的异常信息或错误代码。
  5. 权限与安全设置

    • 确认应用已获取运行Native代码所需的权限。
    • 检查系统安全策略,确保Native代码未触发安全限制。

如果问题依旧没法解决请联系官网客服,官网地址是 https://www.itying.com/category-93-b0.html

回到顶部