Kotlin не может импортировать файл JSON, даже с явным путем
Я пытаюсь импортировать локальный файл JSON в приложение для Android с помощью Kotlin и Android Studio, однако приложение не может найти этот файл. Даже с явным путем JVM не может получить доступ к файлу. Я попытался сделать файл.txt, и JVM не может найти это либо. Учебные руководства Клаксона не работают, потому что класс Parser устарел; что в любом случае не имеет значения, потому что ошибка не в этом. И да, файл существует в каталоге, и он записан таким образом.
fun parse(name: String) : Any? {
val inputStream: InputStream = File("C:\\Users\\Athena\\AndroidStudioProjects\\AD340HW1\\app\\zombie_movies.json").inputStream()
val lineList = mutableListOf<String>()
//val cls = Parser::class.java
//inputStream.bufferedReader().useLines { lines -> lines.forEach {lineList.add(it) } }
//val strArray = arrayOfNulls<String>(lineList.size)
return lineList
}
java.lang.RuntimeException: невозможно запустить действие ComponentInfo{com.example.athena.ad340hw1/com.example.athena.ad340hw1.ZombieMovies}: java.io.FileNotFoundException: C:\Users\Athena\AndroidStudioProjects\AD340H zombie_movies.json (нет такого файла или каталога)
2 ответа
Чтобы использовать текстовый файл или любой другой внешний файл, вы должны иметь приложение для Android, чтобы попросить пользователя дать разрешение. Там есть код, который выведет окно с запросом разрешения на использование файловой системы. Вот ссылка, с которой можно начать. Я уверен, что есть много других хороших учебников по этому вопросу. https://developer.android.com/training/permissions/requesting.html
В итоге я просто разместил JSON на сервере и вытащил его с сервера. Это оказалось лучше, чем работать с ним на моей локальной машине, потому что в будущем эти данные должны быть доступны с удаленного устройства. Я предполагаю, что моей основной ошибкой была попытка действовать слишком медленно, слишком методично; Я должен был просто запустить сервер, который мне нужен, и покончить с этим.