Навигация по созданию java.lang.NoSuchMethodError: невозможно составить статический методAndroid

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Навигация по созданию java.lang.NoSuchMethodError: невозможно составить статический метод

Сообщение Anonymous »

У меня проблема в классе HomeRegisterer. Я не понял, в чем проблема в моем классе HomeRegisterer
FATAL EXCEPTION: main
Process: com.example.navigationexamples, PID: 6436
java.lang. NoSuchMethodError: нет компонуемого статического метода $default(Landroidx/navigation/NavGraphBuilder;Ljava/lang/String;Ljava/util/List;Ljava/util/List;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function1;Lkotlin /jvm/functions/Function1;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function2;ILjava/lang/Object;)V в классе Landroidx/navigation/compose/NavGraphBuilderKt; или его суперклассы (объявление androidx.navigation.compose.NavGraphBuilderKt появляется в /data/data/com.example.navigationexamples/code_cache/.overlay/base.apk/classes9.dex)
в com.example .home.HomeNavRegisterer.registerGraph(HomeNavRegisterer.kt:11)
на com.example.navigationexamples.NavHostKt$NavGraph$1.invoke(NavHost.kt:14)
на com.example.navigationexamples.NavHostKt$ NavGraph$1.invoke(NavHost.kt:13)
на androidx.navigation.compose.NavHostKt.NavHost(NavHost.kt:390)
на com.example.navigationexamples.NavHostKt.NavGraph(NavHost.kt) :13)
на com.example.navigationexamples.MainActivity$onCreate$1$1.invoke(MainActivity.kt:31)

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

interface NavigationRegisterer {
fun registerGraph(navController : NavHostController, navGraphBuilder: NavGraphBuilder)
}

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

class HomeNavRegisterer : NavigationRegisterer {
override fun registerGraph(navController: NavHostController, navGraphBuilder: NavGraphBuilder) {
navGraphBuilder.composable(Screens.HomeScreen.route) {
HomeScreen()
}
}
}

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

interface NavStarter {
fun startHomeScreen() : NavigationRegisterer
}

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

class NavStarterImpl: NavStarter{
override fun startHomeScreen(): NavigationRegisterer {
return HomeNavRegisterer()
}
}

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

@Module
@InstallIn(SingletonComponent::class)
object NavModule {

@Provides
@Singleton
fun provideStarter(): NavStarter {
return NavStarterImpl()
}
}

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

@Composable
fun NavGraph(navController: NavHostController, starterImpl: NavStarter) {
NavHost(navController = navController, startDestination = Screens.HomeScreen.route ) {
starterImpl.startHomeScreen().registerGraph(navController = navController, navGraphBuilder = this)
}
}

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

@AndroidEntryPoint
class MainActivity : ComponentActivity() {
@Inject
lateinit var starter : NavStarter
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
enableEdgeToEdge()
setContent {
NavigationExamplesTheme {
val navController = rememberNavController()
NavGraph(navController = navController, starterImpl = starter)
}
}
}

Как решить эту проблему? Заранее спасибо за помощь

Подробнее здесь: https://stackoverflow.com/questions/787 ... composable
Ответить

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

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

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

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

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