2017-12-03 284 views
0

我试图在Android Studio中编译OPUS。 当我从命令行调用ndk-build时,一切正常。 当我从Android Studio构建它时,它失败。Android Studio ndk-build找不到文件

我app.gradle:

externalNativeBuild { 
    ndkBuild { 
     path 'src/main/jni/Android.mk' 
    } 
} 

Android.mk有一些包括:

include celt_sources.mk 

错误:

Error while executing process G:\ASDK\ndk-bundle\ndk-build.cmd with arguments {NDK_PROJECT_PATH=null APP_BUILD_SCRIPT=F:\TP2\ram\android\app\src\main\jni\Android.mk NDK_APPLICATION_MK=F:\TP2\ram\android\app\src\main\jni\Application.mk APP_ABI=armeabi-v7a NDK_ALL_ABIS=armeabi-v7a NDK_DEBUG=0 APP_PLATFORM=android-19 NDK_OUT=F:/TP2/ram/android/app/build/intermediates/ndkBuild/release/obj NDK_LIBS_OUT=F:\TP2\ram\android\app\build\intermediates\ndkBuild\release\lib APP_SHORT_COMMANDS=false LOCAL_SHORT_COMMANDS=false -B -n} 

为什么NDK_PROJECT_PATH空?如何在调用ndk-build之前告诉Android Studio设置当前目录?

最佳,

+0

'NDK_PROJECT_PATH = null'看起来很正常。什么是实际的错误? – Michael

+0

它无法编译,因为它无法找到MK文件。我通过将完整路径放在包含语句中来暂时解决它。 – Michael

回答

1

你可能跟着this或类似的解决方案,为Android编译准备巨著。像

include celt_sources.mk 

的语句是不是一个好的做法,因为他们迫使你在同一目录Android.mk文件运行ndk-build。这还不算苦逼的Android工作室以这种方式工作,以下块添加到您的的build.gradle

android { 
    defaultConfig { 
     externalNativeBuild { 
      ndkBuild { 
       arguments '-C src/main/jni' 
      } 
     } 
    } 
} 

但它是干净多了遵循许多其他版本之一Android.mk对于可以在WWW上找到的作品,例如this one它采用

include $(LOCAL_PATH)/celt_sources.mk 

这种方式,构建不依赖于为ndk-build命令工作目录。

相关问题