博观而约取,厚积而薄发。这篇文章主要讲述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,
【Facebook Buck(BUILD FAILED:没有检测到原生平台。可能没有正确配置Android NDK)】环境变量:
$ 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
。推荐阅读
- Android JNI - 线程同步
- 如何在JavaScript中从Twig安全地打印字符串变量
- 为Symfony 1.4中的异常实现自定义500错误页面
- 使用C#和Winforms捕获不同方式的屏幕截图
- 如何在Twig中重复现有的块
- 如何在Symfony 2和3中的模板上使用Twig执行原则查询
- 如何在Symfony 3中使用FFMpeg将webm视频转换为mp4
- C#中的String和string关键字有什么区别
- 如何在Twig中将日期时间对象格式化为ISO 8601