Android NDK Build: ld: error: failed to write to the output file: Permission denied
Android NDK Build: ld: error: failed to write to the output file: Permission denied
我可以在 windows 7 中构建我的项目,直到我将 NDK 版本更新到最新版本 (23.1.7779620)。
我将 NDK 文件放在 Android SDK 文件夹旁边:
local.properties
sdk.dir=F\:\Programming\AndroidSdk
ndk.dir=F\:\Programming\AndroidNdk\ndk-r23b
现在,当我想要构建 APK 时,出现了这个错误:
> Task :app:externalNativeBuildDebug FAILED
Build gdx-audio_armeabi-v7a
[armeabi-v7a] SharedLibrary : libgdx-audio.so
ld: error: failed to write to the output file: Permission denied
clang++: error: linker command failed with exit code 1 (use -v to see invocation)
make: *** [F:/Programming/AndroidNdk/ndk-r23b/build//../build/core/build-binary.mk:715: F:/Projects/Android/myProject/app/build/intermediates/ndkBuild/debug/obj/local/armeabi-v7a/libgdx-audio.so] Error 1
ld: error: failed to write to the output file: Permission denied
我的应用程序 build.gradle
:
android {
...
ndkVersion "23.1.7779620"
externalNativeBuild {
ndkBuild {
path "jni/Android.mk"
}
}
defaultConfig {
...
externalNativeBuild {
ndkBuild {
arguments "NDK_APPLICATION_MK:=jni/Application.mk", "APP_PLATFORM:=android-16", "-j8"
abiFilters "armeabi-v7a", "arm64-v8a"
}
}
}
}
}
你是对的。 ProcessMonitor 似乎表明在 NDK 版本 23.1.7779620 中,ld.exe 使用的是更新的 API 调用,Win7 不支持该调用。
看起来 ld 错误地将失败的 API 调用解释为“权限被拒绝”错误。同样的情况发生在 NDK 版本 23.0.7599858.
似乎可以在 Win7 上运行的最后一个 NDK 是 22.1.7171670。
系统升级到Win10后ld开始正常工作23.x NDK版本
我可以在 windows 7 中构建我的项目,直到我将 NDK 版本更新到最新版本 (23.1.7779620)。
我将 NDK 文件放在 Android SDK 文件夹旁边:
local.properties
sdk.dir=F\:\Programming\AndroidSdk
ndk.dir=F\:\Programming\AndroidNdk\ndk-r23b
现在,当我想要构建 APK 时,出现了这个错误:
> Task :app:externalNativeBuildDebug FAILED
Build gdx-audio_armeabi-v7a
[armeabi-v7a] SharedLibrary : libgdx-audio.so
ld: error: failed to write to the output file: Permission denied
clang++: error: linker command failed with exit code 1 (use -v to see invocation)
make: *** [F:/Programming/AndroidNdk/ndk-r23b/build//../build/core/build-binary.mk:715: F:/Projects/Android/myProject/app/build/intermediates/ndkBuild/debug/obj/local/armeabi-v7a/libgdx-audio.so] Error 1
ld: error: failed to write to the output file: Permission denied
我的应用程序 build.gradle
:
android {
...
ndkVersion "23.1.7779620"
externalNativeBuild {
ndkBuild {
path "jni/Android.mk"
}
}
defaultConfig {
...
externalNativeBuild {
ndkBuild {
arguments "NDK_APPLICATION_MK:=jni/Application.mk", "APP_PLATFORM:=android-16", "-j8"
abiFilters "armeabi-v7a", "arm64-v8a"
}
}
}
}
}
你是对的。 ProcessMonitor 似乎表明在 NDK 版本 23.1.7779620 中,ld.exe 使用的是更新的 API 调用,Win7 不支持该调用。
看起来 ld 错误地将失败的 API 调用解释为“权限被拒绝”错误。同样的情况发生在 NDK 版本 23.0.7599858.
似乎可以在 Win7 上运行的最后一个 NDK 是 22.1.7171670。
系统升级到Win10后ld开始正常工作23.x NDK版本