Я новичок в Котлине. Я пишу приложение для 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
Форум для тех, кто программирует под Android
1739889207
Anonymous
Я новичок в Котлине. Я пишу приложение для 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, без результата.
Подробнее здесь: [url]https://stackoverflow.com/questions/79448609/openrawresource-cant-find-a-resource-by-its-id[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия