Spanish File.OpenInput ENOENT (No such file or directory)

angel_

Well-Known Member
Licensed User
Longtime User
Tengo varios errores en Crashlytics relacionados con ENOENT (No such file or directory) en anywheresoftware.b4a.objects.streams.File.OpenInput, sucede con diferentes versiones de Android (7.1.1, 9 y 10), he buscado en el foro pero no acabo de solucionar el problema, en mi dispositivo no salta este error lo que complica su solución.

En el manifiesto tengo:

B4X: Copy
AddManifestText(
<uses-permission
  android:name="android.permission.WRITE_EXTERNAL_STORAGE"
  android:maxSdkVersion="19" />
)

SetApplicationAttribute(android:requestLegacyExternalStorage, true)

Utilizo las rutas rs.GetSafeDirDefaultExternal para guardar los archivos que se crean en la aplicación y File.DirAssets para leer archivos (añadidos al File Manager del IDE).

A ver si alguien ha solucionado el problema.
 
Hola Ángel:

¿Puedes poner las partes de tu código en la que usas archivos a ver si así alguien ve algo raro que te pueda ayudar?
 
Creo recordar que Crashlytics te da también la línea java en la que obtienes el error. Puedes ver los archivos de java en tu carpeta creo recordar que es Objects/src y ver la línea, los comentarios que introduce el compilador te pueden ayudar a ver qué función o activity de tu aplicación es.
 
Creo recordar que Crashlytics te da también la línea java en la que obtienes el error. Puedes ver los archivos de java en tu carpeta creo recordar que es Objects/src y ver la línea, los comentarios que introduce el compilador te pueden ayudar a ver qué función o activity de tu aplicación es.
Gracias, el error se produce en:

Caused by java.io.FileNotFoundException
...open failed: ENOENT (No such file or directory)
B4X: Copy
    Dim rs As RuntimePermissions  
    Dim RutaArchivo as String = rs.GetSafeDirDefaultExternal("pr")

    Dim parser As JSONParser
    parser.Initialize(File.ReadString(RutaArchivo, Nombre & ".extension"))  '<<-- Error
    Dim Map1 As Map = parser.NextObject
    Dim lista As List = Map1.Get("lista")
 
Parece entonces que en algunos dispositivos ese archivo no se crea o se copia...
Encierra las lineas de la 4 a la 7 con un

B4X: Copy
if file.exist then
...

.Puedes poner el codigo donde copias o creas ese archivo?
 
He eliminado un Sleep(0) antes de la apertura del archivo que creo que me daba problemas, os iré informando.

Saludos
 
Back
Top