Навигация с аргументами не работает. Класс Directions теряется при запускеAndroid

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Навигация с аргументами не работает. Класс Directions теряется при запуске

Сообщение Anonymous »

Я пробую опцию «Навигация» и должен сказать, что пока… она меня не радует.

Похоже, что это какая-то альфа-версия новой функции, поэтому много ошибок.

Помимо проблемы, вы можете прочитать повсюду о том, что студия не генерирует классы Directions и как это исправить (очистить проект + перестроить или сделать недействительными кеши) или (удалить материал). из gradle -> sync -> re-add), который, кстати, работает, у меня другая проблема.

Когда я наконец-то получаю, что все классы направлений работают правильно, и я нажимаю кнопку запуска, чтобы протестировать мое приложение в эмуляторе, все классы направлений кажутся потерянными.

результат: ошибки во всех моих фрагментах.

Я прочитал и попробовал все, кроме 1 вариант в этом посте: сообщение stackoverflow

1 вариант, который я не смог попробовать: тот, где добавляется путь в градиент:

Код: Выделить всё

sourceSets {
getByName("main") {
java.srcDirs("build/generated/source/navigation-args")
} }
По той простой причине, что когда я это делаю, я получаю сообщение об ошибке «набор исходных кодов с именем «main» не найден».
и я понятия не имею, как это решить.
С другой стороны, я потерял надежду, что это фактическое решение моей проблемы.
ниже я публикую два файла Gradle в надежде, что я сделал тогда действительно глупая ошибка (в этом случае я должен извиниться перед Google за жалобу)
module: app

Код: Выделить всё

plugins {
alias(libs.plugins.android.application)
alias(libs.plugins.jetbrains.kotlin.android)
id("androidx.navigation.safeargs")
}
android {
namespace = "com.example.tripmemory"
compileSdk = 34

defaultConfig {
applicationId = "com.example.tripmemory"
minSdk = 28
targetSdk = 34
versionCode = 1
versionName = "1.0"

testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
}

buildTypes {
release {
isMinifyEnabled = false
proguardFiles(
getDefaultProguardFile("proguard-android-optimize.txt"),
"proguard-rules.pro"
)
}
}

compileOptions {
sourceCompatibility = JavaVersion.VERSION_1_8
targetCompatibility = JavaVersion.VERSION_1_8
}

kotlinOptions {
jvmTarget = "1.8"
}

buildFeatures {
viewBinding = true
}
}
dependencies {

implementation(libs.androidx.core.ktx)
implementation(libs.androidx.appcompat)
implementation(libs.material)
implementation(libs.androidx.constraintlayout)

implementation(libs.androidx.navigation.fragment.ktx)
implementation(libs.androidx.navigation.ui.ktx)
implementation("androidx.navigation:navigation-dynamic-features-fragment:2.7.7")

implementation(libs.androidx.preference.ktx)

implementation(libs.androidx.room.common)
implementation(libs.androidx.room.ktx)

implementation(libs.play.services.maps)
implementation("com.google.android.gms:play-services-location:21.2.0")

testImplementation(libs.junit)
androidTestImplementation(libs.androidx.junit)
androidTestImplementation(libs.androidx.espresso.core)
}
и градиент проекта

Код: Выделить всё

buildscript {
dependencies {
classpath("androidx.navigation:navigation-safe-args-gradle-plugin:2.7.7")
}
}
plugins {
alias(libs.plugins.android.application) apply false
alias(libs.plugins.jetbrains.kotlin.android) apply false
id("com.google.android.libraries.mapsplatform.secrets-gradle-plugin") version("2.0.1") apply false
}
и в завершение: libs.version

Код: Выделить всё

[versions]
agp = "8.4.1"
kotlin = "1.9.0"
coreKtx = "1.13.1"
junit = "4.13.2"
junitVersion = "1.1.5"
espressoCore = "3.5.1"
appcompat = "1.6.1"
material = "1.12.0"
constraintlayout = "2.1.4"
navigationFragmentKtx = "2.7.7"
navigationUiKtx = "2.7.7"
playServicesLocation = "21.2.0"
preferenceKtx = "1.2.1"
roomCommon = "2.6.1"
playServicesMaps = "18.2.0"
roomKtx = "2.6.1"
[libraries]
androidx-core-ktx = { group = "androidx.core", name = "core-ktx", version.ref = "coreKtx" }
junit = { group = "junit", name = "junit", version.ref = "junit" }
androidx-junit = { group = "androidx.test.ext", name = "junit", version.ref = "junitVersion" }
androidx-espresso-core = { group = "androidx.test.espresso", name = "espresso-core", version.ref = "espressoCore" }
androidx-appcompat = { group = "androidx.appcompat", name = "appcompat", version.ref = "appcompat"  }
material = { group = "com.google.android.material", name = "material", version.ref = "material" }
androidx-constraintlayout = { group = "androidx.constraintlayout", name = "constraintlayout", version.ref = "constraintlayout" }
androidx-navigation-fragment-ktx = { group = "androidx.navigation", name = "navigation-fragment-ktx", version.ref = "navigationFragmentKtx" }
androidx-navigation-ui-ktx = { group = "androidx.navigation", name = "navigation-ui-ktx", version.ref = "navigationUiKtx" }
androidx-preference-ktx = { group = "androidx.preference", name = "preference-ktx", version.ref = "preferenceKtx" }
androidx-room-common = { group = "androidx.room", name = "room-common", version.ref = "roomCommon" }
play-services-location = { module = "com.google.android.gms:play-services-location", version.ref = "playServicesLocation" }
play-services-maps = { group = "com.google.android.gms", name = "play-services-maps", version.ref = "playServicesMaps" }
androidx-room-ktx = { group = "androidx.room", name = "room-ktx", version.ref = "roomKtx" }
[plugins]
android-application = { id = "com.android.application", version.ref = "agp" }
jetbrains-kotlin-android = { id = "org.jetbrains.kotlin.android", version.ref = "kotlin" }
Надеюсь, кто-нибудь знает, как решить эту проблему, потому что мне нравится способ работы с навигацией, но на данный момент преимущества быстро исчезают.

Подробнее здесь: https://stackoverflow.com/questions/785 ... los-on-run
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»