如何在Android上使用非零退出值2完成NDK设置



我想构建Gstreamer源,并且需要NDK

我正在设置SDK Manager-> Android SDK-> SDK Tools-> NDK install

我设置了local.properties dk:dir="C:\Users\ddd\AppData\Local\Android\sdk\ndk-bundle

设置NDK后,我尝试构建它,但是执行失败。

Execution failed for task ':app:ndkBuild'. > Process 'command 'C:UsersdddAppDataLocalAndroidsdkndk-bundlendk-build.cmd" finished with non-zero exit value 2消息。

如何在Android上设置NDK?

要查找特定问题,请在Android Studio中检查 build 选项卡,以查看哪个任务失败。对我来说,这是"清洁"的任务。

然后用终端手动运行此任务, - debug option。

在Mac或Linux上:

./gradlew cleanNative --debug

在Windows上:

gradlew cleanNative --debug

从日志中,您可以查看为什么失败。就我而言,这是错误的ABI设置:

10:24:27.140 [QUIET] [system.out] Android NDK: The armeabi ABI is no longer supported. Use armeabi-v7a.    
10:24:27.140 [QUIET] [system.out] Android NDK: NDK Application 'local' targets unknown ABI(s): armeabi    
10:24:27.140 [ERROR] [system.err] /Users/michal-home/Library/Android/sdk/ndk-bundle/build/core/setup-app.mk:79: *** Android NDK: Aborting    .  Stop.
10:24:27.140 [QUIET] [system.out] Android NDK: Please fix the APP_ABI definition in /path-to-app/app/src/main/jni/Application.mk    
  1. 我从上方推断出的是您已经安装了NDK,请确保您还安装了 cmake和lldb 。(安装后重新启动Android Studio)

  2. 如果问题仍然存在,即使在此之后仍然存在问题,请尝试删除NDK库中的" obj" 文件夹(位于" yourlibary/main/main/src/obj")和重建。

这为我解决了问题。

您需要确保正确设置NDK - 转到file-> project-> project-> sdk位置,并确保正确设置了NDK位置。如果是这样,也许由于代码的某些问题而导致的汇编失败了,我们将需要更多信息才能帮助您。

在我的情况和项目中,使用特定的NDK版本(修订版17C)很有帮助。因此,我只是将其放在'c: users 用户名 appdata local android sdk ndk-bundle'

另一个有用的问题是将您的 *.so文件放在Jnilibs文件夹中:

如何在Android Studio中包括 *.so库?

检查您的Android项目路径。

我的文件夹名称上有类似的问题。避免这样的事情或NDK无法完成工作

。 user user1 desktop androidprojects my project androidproject1

使用

。 user user1 desktop androidprojects myproject androidproject1

最新更新