如何将 NDK 降级到 r8e

Posted

技术标签:

【中文标题】如何将 NDK 降级到 r8e【英文标题】:How to downgrade NDK to r8e 【发布时间】:2016-08-22 01:18:29 【问题描述】:

我将一个 android 项目从 Eclipse 迁移到 Android Studio,并更新了 NDK。当我构建解决方案时,我遇到了这个错误:

错误:(61, 2) 错误:格式不是字符串文字且没有格式参数 [-Werror=format-security]

Here is the error

我找不到任何解决方案,所以我想我必须降级 NDK。 还有其他方法可以解决这个问题吗?如果没有,我该如何将我的 NDK 降级到 r8e?

【问题讨论】:

这是您的代码中的一个错误,您应该解决这个问题,而不是使用 4 年前的 NDK。 我的代码在 Eclipse 上运行良好,但在 android studio 上出现此错误 ... Eclipse 可能正在使用旧编译器或旧版本的 NDK。 这就是我问这个问题的原因...... 为什么不直接修复代码中的错误呢?如果buf 是没有任何格式说明符的纯字符串,请使用__android_log_write 而不是__android_log_print 【参考方案1】:

为了降级您的 ndk,您必须使用 wget 从互联网上提取它并将其移动到您的 Android SDK 目录中:

wget https://dl.google.com/android/repository/android-ndk-r13b-darwin-x86_64.zip

解压android-ndk-r13b-darwin-x86_64.zip

mv android-ndk-r13b/$ANDROID_HOME/ndk-bundle

【讨论】:

当我这样做.. 版本 16 时,当我重新打开 AS 时它仍然显示 17? @justdan0227 在 Android Studio 中检查您的项目结构,并确保您指向的是自定义下载的 NDK,而不是默认的。 谢谢.. 我必须卸载 NDK,然后将 16 版本复制到 android 主文件夹并进入 AS 并将 NDK 文件夹指向 16 版本。 SDK工具中的复选标记仍未选中,但是我的cpp代码现在可以编译 如果您有一个现有的 NDK,最好删除 rm -rf $ANDROID_HOME/ndk-bundle 然后将新的 mv 删除到它上面,例如mv android-ndk-r16b $ANDROID_HOME/ndk-bundle

以上是关于如何将 NDK 降级到 r8e的主要内容,如果未能解决你的问题,请参考以下文章

如何将 Xcode 从 7.0 版本降级到 6.4?

如何将PHP 5.6降级到PHP 5.3?

如何将 C++ Visual Studio 2008 项目降级到 2005

MAC下eclipse build项目的时候提示无法运行ndk-build.cmd

如何将 salt minion 降级到旧版本?

如何将 PHP 5.6 降级到 PHP 5.3?