Hola JM, no hay por qué darlas, para eso estamos. Espero estar dándole vueltas al coco cuando tenga tu edad, jeje.
No me ha dado tiempo de probarlo a fondo, pero creo que ya sé dónde está el problema.
- Creo que en tu primer post deberías haber dado algún dato más, como el error que te salta, y la línea en la que te sale el error.
- Tienes razón en que el problema está en la lista, he quitado las líneas de Try...Catch para ver dónde da el error y sale esto:
** Activity (main) Resume **
** Activity (main) Pause, UserClosed = false **
** Activity (encrdecr) Create, isFirst = false **
/storage/emulated/0
Error occurred on line: 76 (EncrDecr)
java.lang.RuntimeException: Object should first be initialized (List).
at anywheresoftware.b4a.AbsObjectWrapper.getObject(AbsObjectWrapper.java:50)
at anywheresoftware.b4a.objects.collections.List.AddAll(List.java:92)
....
- Efectivamente inicializas la lista, pero si te fijas, la línea que lanza el error es
lstFiles.AddAll(File.ListFiles(sDir))
Y si te fijas, en la ayuda que te da el IDE cuando usas File.ListFiles te indica:
Es decir, la carpeta a la que intentas acceder no es accesible.
Me temo que tienes que lidiar con los permisos para leer una carpeta externa
https://www.b4x.com/android/forum/threads/runtime-permissions-android-6-0-permissions.67689/
Veo que lo tienes agregado en el archivo manifest, pero no veo que solicites el permiso.
EDITO: remirando tu ejemplo, veo que has empezado a aplicar los permisos, pero no has terminado de implementarlos.
Veo que tienes una linea comentada
' rp.CheckAndRequest(rp.PERMISSION_ACCESS_FINE_LOCATION)
pero te falta aún por declarar rp, y solicitar el permiso adecuado (READ_EXTERNAL_STORAGE), o mejor, poner los archivos en la carpeta
rp.GetSafeDirDefaultExternal("")
que no necesitará permisos.
Ya si tienes problema con los permisos inicia un nuevo hilo.
Un saludo y suerte¡¡