如何将 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的主要内容,如果未能解决你的问题,请参考以下文章
如何将 C++ Visual Studio 2008 项目降级到 2005