Я новичок в Котлине. Я пишу приложение для Android. Я пытаюсь проанализировать файл с именем "dateSet.json", который находится в приложении/res/raw. Вот (довольно простой) код, который я использую: < /p>
import android.content.res.Resources
class FileHandler {
fun getDataset(): String {
return Resources.getSystem().openRawResource(R.raw.dataset).toString()
}
}
< /code>
К сожалению, я получаю исключение: < /p>
FATAL EXCEPTION: main
Process: com.example.yetanothertasktracker, PID: 11751
android.content.res.Resources$NotFoundException: Resource ID #0x7f090000
at android.content.res.ResourcesImpl.getValue(ResourcesImpl.java:276)
at android.content.res.ResourcesImpl.openRawResource(ResourcesImpl.java:404)
at android.content.res.Resources.openRawResource(Resources.java:1400)
at android.content.res.Resources.openRawResource(Resources.java:1344)
at com.example.yetanothertasktracker.FileHandler.(FileHandler.kt:11)
at com.example.yetanothertasktracker.MainActivityKt.getTasksList(MainActivity.kt:31)
at com.example.yetanothertasktracker.ComposableSingletons$MainActivityKt$lambda-1$1.invoke(MainActivity.kt:22)
at com.example.yetanothertasktracker.ComposableSingletons$MainActivityKt$lambda-1$1.invoke(MainActivity.kt:21)
at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jvm.kt:109)
at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jvm.kt:35)
at androidx.compose.ui.platform.ComposeView.Content(ComposeView.android.kt:428)
at androidx.compose.ui.platform.AbstractComposeView$ensureCompositionCreated$1.invoke(ComposeView.android.kt:252)
at androidx.compose.ui.platform.AbstractComposeView$ensureCompositionCreated$1.invoke(ComposeView.android.kt:251)
at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jvm.kt:109)
at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jvm.kt:35)
at androidx.compose.runtime.CompositionLocalKt.CompositionLocalProvider(CompositionLocal.kt:228)
at androidx.compose.ui.platform.CompositionLocalsKt.ProvideCommonCompositionLocals(CompositionLocals.kt:186)
at androidx.compose.ui.platform.AndroidCompositionLocals_androidKt$ProvideAndroidCompositionLocals$3.invoke(AndroidCompositionLocals.android.kt:119)
at androidx.compose.ui.platform.AndroidCompositionLocals_androidKt$ProvideAndroidCompositionLocals$3.invoke(AndroidCompositionLocals.android.kt:118)
at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jvm.kt:109)
at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jvm.kt:35)
at androidx.compose.runtime.CompositionLocalKt.CompositionLocalProvider(CompositionLocal.kt:228)
at androidx.compose.ui.platform.AndroidCompositionLocals_androidKt.ProvideAndroidCompositionLocals(AndroidCompositionLocals.android.kt:110)
at androidx.compose.ui.platform.WrappedComposition$setContent$1$1$2.invoke(Wrapper.android.kt:139)
at androidx.compose.ui.platform.WrappedComposition$setContent$1$1$2.invoke(Wrapper.android.kt:138)
at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jvm.kt:109)
at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jvm.kt:35)
at androidx.compose.runtime.CompositionLocalKt.CompositionLocalProvider(CompositionLocal.kt:248)at androidx.compose.ui.platform.WrappedComposition$setContent$1$1.invoke(Wrapper.android.kt:138)
< /code>
Если я добавлю точку останова к коду вокруг оператора возврата и попытаюсь оценить выражения, я вижу, что R.Raw.Dataset оценивает идентификатор целого числа, что, я полагаю, означает, что Ресурс действительно есть, и компилятор видит его. Затем идентификатор передается в OpenRawresource, который, в свою очередь, бросает исключение. То же самое происходит, если я обращаюсь к OpenRawresource с передачей этого целочисленного значения напрямую. Таким образом, насколько я могу судить, идентификатор, который возвращается R.Raw.Dataset, не то же самое, что идентификатор, который требуется в качестве входного ввода в OpenRawresource. Что я делаю не так? Я сделал недействительную досусть и перезапустить IDE, без результата.
Подробнее здесь: https://stackoverflow.com/questions/794 ... -by-its-id
OpenRawresource не может найти ресурс по своему идентификатору [дублировать] ⇐ Android
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение