Android sdk-29版本上使用 jni mkdir創建文件夾失敗返回-1

Android sdk-29版本上使用 jni mkdir創建文件夾失敗返回-1

+    compileSdkVersion 29
    buildToolsVersion "29.0.2"
    defaultConfig {
        applicationId "com.kxf.opencvandroiddemo"
        minSdkVersion 19
        targetSdkVersion 29
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
    }
std::string prefix = "/storage/emulated/0/aCardOCR/";
    if (access(prefix.c_str(), 0) == -1){
        //如果文件夾不存在
        int code = mkdir(prefix.c_str(), S_IRWXU);				//則創建
        LOGE("%s 創建  %d", prefix.c_str(), code);
    }

解決方法:sdk降回28,如下

compileSdkVersion 28
buildToolsVersion "28.0.3"
defaultConfig {
    applicationId "com.kxf.bankcardocr"
    minSdkVersion 19
    targetSdkVersion 28
    versionCode 1
    versionName "1.0"

原因分析:可能是Android高版本的sdk對訪問sdcard做了限制,由於時間原因,沒有深入分析原因!

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章