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

时间:2017-02-27 07:42:44

标签: android android-ndk

我想构建Gstreamer来源,它需要NDK

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

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

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

Execution failed for task ':app:ndkBuild'. > Process 'command 'C:\Users\ddd\AppData\Local\Android\sdk\ndk-bundle\ndk-build.cmd" finished with non-zero exit value 2消息。

如何在android上设置ndk?

5 个答案:

答案 0 :(得分:5)

  1. 我从上面推断出您已经安装了NDK,请确保您还安装 CMake和LLDB 。 (安装后重启Android Studio)

  2. 如果问题仍然存在,请尝试删除ndk库中的“obj”文件夹(位于“yourLibary / main / src / obj”)并重建。

  3. 这解决了我的问题。

答案 1 :(得分:3)

要查找特定问题,请检查Android Studio中的构建标签,以查看哪个任务失败。对我来说,这是任务“ cleanNative”。

然后使用-debug 选项从终端手动运行此任务。

在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    

答案 2 :(得分:1)

您需要确保NDK设置正确 - 转到文件 - >项目结构 - > SDK位置并确保正确设置NDK位置。如果是,可能由于代码的某些问题导致编译失败,我们将需要更多信息以帮助您。

答案 3 :(得分:0)

检查您的android项目路径。

我在文件夹名称中有空格时也遇到类似的问题。避免那样的事情或ndk无法完成工作

  

。\ Users \ User1 \ Desktop \ androidprojects \ my project \ androidproject1

代替使用

  

。\ Users \ User1 \ Desktop \ androidprojects \ myproject \ androidproject1

答案 4 :(得分:0)

在我的案例和项目中,使用私有ndk版本(Revision 17c)很有帮助。所以我只把它放在'C:\ Users \ UserName \ AppData \ Local \ Android \ sdk \ ndk-bundle'

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

How to include *.so library in Android Studio?