使用 NDK 读/写文件总是给我错误号 13:权限被拒绝

问题描述 投票:0回答:0

我正在尝试使用 NDK 将文件写入 sdcard,但它总是给我权限被拒绝。其他人也看到了同样的问题,我不知道如何解决这个问题。这是代码

void test() {
    FILE *file = fopen("/sdcard/test.txt", "w+");
    if (nullptr != file) {
        fputs("hello, world\n", file);
        fclose(file);
    } else {
        __android_log_print(ANDROID_LOG_VERBOSE, "test", "FAIL with %d", errno);
    }

    printf("done!");
}

日志:

2023-04-04 17:06:11.755 31824-31824/com.example.readfilenative V/test: FAIL with 13

清单:

    <uses-permission android:name="android.permission.MANAGE_EXTERNAL_STORAGE"/>
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>

    <application
        android:allowBackup="true"
        android:requestLegacyExternalStorage="true"
        android:dataExtractionRules="@xml/data_extraction_rules"

摇篮

android {
    namespace 'com.example.readfilenative'
    compileSdk 33

    defaultConfig {
        applicationId "com.example.readfilenative"
        minSdk 24
        targetSdk 33
        versionCode 1
        versionName "1.0"

我不能降到28,我想用33。

我正在看这个帖子:

如何解决OS Error: Permission denied, errno = 13 in flutter

安卓工作室版

Android Studio Electric Eel | 2022.1.1 Patch 2
Build #AI-221.6008.13.2211.9619390, built on February 16, 2023
Runtime version: 11.0.15+0-b2043.56-9505619 amd64
VM: OpenJDK 64-Bit Server VM by JetBrains s.r.o.
Windows 11 10.0
GC: G1 Young Generation, G1 Old Generation
Memory: 1792M
Cores: 16
Registry:
    external.system.auto.import.disabled=true
    ide.text.editor.with.preview.show.floating.toolbar=false
    cidr.max.intellisense.file.length=1000000

Non-Bundled Plugins:
    com.intellij.plugins.visualstudiokeymap (221.6008.15)
    GLSL (1.21)

有什么线索可以绕过这个问题吗?系统用户界面上肯定启用了权限。

谢谢。

android android-ndk
© www.soinside.com 2019 - 2024. All rights reserved.