Facebook Buck:BUILD FAILED:没有检测到原生平台。可能没有正确配置Android NDK

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Facebook Buck:BUILD FAILED:没有检测到原生平台。可能没有正确配置Android NDK相关的知识,希望对你有一定的参考价值。

我正在尝试使用facebook的buck构建系统构建android应用程序但我得到Build Failed错误。

我在MAC和WINDOWS上都遇到了同样的错误

buckconfig文件

[cache]
  mode = dir

[cxx]
  default_platform = iphonesimulator-x86_64
  cflags = -g -std=c11
  cxxflags = -g -std=c++14
  # Many ARC APIs don't compile with separate preprocess and compile.
  combined_preprocess_and_compile = true

[alias]
  demo_app_android = //android:demo-app
  demo_app_ios = //ios:BuckDemoApp

[apple]
  xctool_zip_target = //third-party/ios/xctool:xctool-minimal-zip

[ndk]
  ndk_version = 16.1.4479499
  app_platform = android-26

[android]
  build_tools_version = 26.0.2
  target = Google Inc.:Google APIs:26

[java]
  src_roots = /android/java/
  source_level = 7
  target_level = 7

[project]
    default_android_manifest = //android/AndroidManifest.xml
    ignore = .buckd, 
             .hg, 
             .git, 
             .idea, 
             buck-cache, 
             buck-out, 

环境变量:

$ env | grep ANDROID_
ANDROID_HOME=<path>/Android/sdk
ANDROID_NDK_REPOSITORY=<path>/Android/sdk/ndk-bundle
ANDROID_SDK=<path>/Library/Android/sdk

错误堆栈跟踪:

Building: finished in 0.0 sec
  Total time: 0.0 sec
BUILD FAILED: No native platforms detected. Probably Android NDK is not configured properly.

我没有得到我所缺少的东西。感谢您的帮助。

谢谢

答案

我在尝试构建示例Android APP时遇到了同样的错误。我尝试了几件事来清楚地理解.buckconfig设置和环境变量的行为。

设置ndk_path

你可以直接设置ndk路径。我已设置此变量而不是设置ndk_version(例如'r10e')请记住

环境变量ANDROID_NDK和NDK_HOME都取代了buckconfig设置。

创建一个repo文件夹(推荐)

下载ndk软件包并将其解压缩到一个用作存储库文件夹的文件夹中,并将其设置为ANDROID_NDK_REPOSITORY env var。因此路径可用于获取正确的ndk版本。在这种情况下,您只需要设置NDK捆绑包的版本,降压将自动为您获得正确的版本。

目前Buck与Java9存在错误。

只是为了增加更多。如果你使用java9然后降级到java8,因为buck使用在java9中删除的sun/misc/BASE64Encoder

在mac中保留java 8和java 9的版本。我在qazxsw poi中实现了以下命令行。

.bash_profile
另一答案

尝试旧版本的NDK(15或更早版本)并确保export JAVA_8_HOME=$(/usr/libexec/java_home -v1.8) export JAVA_9_HOME=$(/usr/libexec/java_home -v9) alias java8='export JAVA_HOME=$JAVA_8_HOME' alias java9='export JAVA_HOME=$JAVA_9_HOME' #default java8 export JAVA_HOME=$JAVA_8_HOME 包含该版本的目录,因此它看起来像/Android/sdk/ndk-bundle

以上是关于Facebook Buck:BUILD FAILED:没有检测到原生平台。可能没有正确配置Android NDK的主要内容,如果未能解决你的问题,请参考以下文章

Buck vs Gradle,Android 构建系统的优缺点

PhoneGap.Build 示例 com.facebook.sdk 错误 2

Build.Phonegap Facebook SDK

在 PhoneGap Build 中从 Facebook 获取信息

Facebook按钮我正在使用firebaseUI多重登录,除了Facebook Builder().build()外,所有按钮都在生成,如何使该按钮膨胀?

phonegap build 添加 facebook 插件