编译我的android ndk项目时,我添加了
APP_STL := stlport_static
到我的jni / Application.mk文件,该文件允许使用一些STL内容。但是,当我清理和构建时,我得到一个错误 libstlport_static.a:没有这样的文件:权限被拒绝 我发现解决这个问题的方法是添加
STLPORT_FORCE_REBUILD := true
这是一个修复,但每次重建stlport库显然非常耗时。对这个问题有更好的解决方法吗?
答案 0 :(得分:11)
您还没有说过您正在开发哪个平台,但我猜测它是Windows。
如果您使用的是Vista或Windows 7,则该问题可能真的是libstlport_static.a文件的权限问题。检查文件的权限或尝试完全禁用用户帐户控制。
请注意,NDK中提供了三个版本的libstlport_static.a。您应该能够通过参考Application.mk文件中的APP_ABI设置来确定您的应用程序正在使用哪个(。)
答案 1 :(得分:2)
我通过更改源文件的权限解决了这个问题。在那种情况下:
chmod 777 <ndk-dir>/sources/cxx-stl/stlport/libs/armeabi/libstlport_satic.a
答案 2 :(得分:1)
如果您使用的是NDK r7c,另一种方式(而不是关闭UAC)是在Windows命令提示符(cmd)中调用ndk-build
而不是在cygwin下调用bash。
在NDK r7及更高版本中,ndk-build
不再依赖于cygwin,因此直接在cmd中调用它可以避免权限问题,因为工具现在具有与您相同的权限。请注意,如果要调试本机代码,仍需要cygwin。