2016-03-18 23 views
5

Tôi đang cố gắng tạo thư mục trên trình giả lập Android của mình nhưng tôi không thể thực hiện, tôi đã có quyền trên manifest write_storage và tôi nhận được không erros nhưng mkdir() trả về false, tôi xác minh nếu lưu trữ bên ngoài là writtable quá và nó là, nó hoạt động trên các thiết bị vật lý mã của tôi:Không thể tạo thư mục trên/lưu trữ/mô phỏng/0 trên trình mô phỏng

/// Cria uma nova pasta para colocar o backup 
    File direct = new File(Environment.getExternalStorageDirectory(), 
      "/Financas RW Backup"); 
    try { 


     if (!direct.exists()) { 
      if(isExternalStorageWritable()&&isExternalStorageReadable()) { 
       if( direct.mkdir()) { 
        fachada.showMessage(ExportImportDB.this," Criado"); 
       }else{ 
        fachada.showMessage(ExportImportDB.this," Não Criado"); 
       } 
      } 
     } 
    } catch (Exception e) { 
     fachada.showMessage(this, e.toString()); 
    } 
+0

sử dụng mkdirs(); nó sẽ tạo ra các thư mục cha nếu nó không có; nhưng mkdir sẽ không tạo ra và do đó nó sẽ trả về false – DJphy

+0

Tôi cố gắng thử nó, không hoạt động –

+0

làm được điều này; Environment.getExternalStorageDirectory(). GetAbsolutePath(), + "tùy chỉnh ur"; – DJphy

Trả lời

4

bạn phải lựa chọn:

  • Downgrade compileSdkVersion của bạn và targetSdkVersion xuống phiên bản thấp hơn trong build.gradle
  • của bạn
  • Yêu cầu quyền ghi vào thời gian chạy là yêu cầu trên Android 6 .

Cá nhân tôi không khuyên người đầu tiên. Để biết thêm thông tin kiểm tra:

Hope this helps !!

+0

Vấn đề là phiên bản Android, và tôi đã thử với phiên bản thấp hơn và hoạt động! –

+0

Yêu cầu quyền hoạt động; chúng ta sẽ nhận được một cảnh báo trong giao diện điều khiển về điều này. –

0

Tôi gặp sự cố tương tự đã được khắc phục bằng cách sử dụng mkdir thay vì mkdir

Các vấn đề liên quan