admin管理员组文章数量:1026912
So, i have a OutlinedButton and for some reason when there is another code besides
navController.navigate("HomeScreen")
my application crashing on starting with this error:
Process: com.rendev.fooddelivery, PID: 23827
java.lang.VerifyError: Verifier rejected class com.rendev.fooddelivery.screens.RegisterScreenKt:
void com.rendev.fooddelivery.screens.RegisterScreenKt.RegisterScreen(androidxpose.ui.Modifier,
androidx.navigation.NavController, androidxpose.runtime.Composer, int, int) failed to verify:
void com.rendev.fooddelivery.screens.RegisterScreenKt.RegisterScreen(androidxpose.ui.Modifier,
androidx.navigation.NavController, androidxpose.runtime.Composer, int, int): [0x1072] copy1 v0<-v268 type=Reference:
androidxpose.ui.Modifier cat=1
(declaration of 'com.rendev.fooddelivery.screens.RegisterScreenKt' appears in /data/app/~~Z0Ucuhnop6JLnikZX1mHFw==/com.rendev.fooddelivery-Try7BmzgN67_EkBMtIOofQ==/base.apk!classes3.dex)
at com.rendev.fooddelivery.ComposableSingletons$MainActivityKt$lambda-1$1$1$2.invoke(MainActivity.kt:52)
at com.rendev.fooddelivery.ComposableSingletons$MainActivityKt$lambda-1$1$1$2.invoke(MainActivity.kt:51)
at androidxpose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jvm.kt:139)
at androidxpose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jvm.kt:35)
at androidx.navigationpose.NavHostKt$NavHost$32$1.invoke(NavHost.kt:694)
at androidx.navigationpose.NavHostKt$NavHost$32$1.invoke(NavHost.kt:693)
at androidxpose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jvm.kt:109)
at androidxpose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jvm.kt:35)
at androidxpose.runtime.CompositionLocalKt.CompositionLocalProvider(CompositionLocal.kt:401)
at androidxpose.runtime.saveable.SaveableStateHolderImpl.SaveableStateProvider(SaveableStateHolder.kt:85)
at androidx.navigationpose.NavBackStackEntryProviderKt.SaveableStateProvider(NavBackStackEntryProvider.kt:65)
at androidx.navigationpose.NavBackStackEntryProviderKt.access$SaveableStateProvider(NavBackStackEntryProvider.kt:1)
at androidx.navigationpose.NavBackStackEntryProviderKt$LocalOwnersProvider$1.invoke(NavBackStackEntryProvider.kt:52)
at androidx.navigationpose.NavBackStackEntryProviderKt$LocalOwnersProvider$1.invoke(NavBackStackEntryProvider.kt:51)
at androidxpose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jvm.kt:109)
at androidxpose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jvm.kt:35)
at androidxpose.runtime.CompositionLocalKt.CompositionLocalProvider(CompositionLocal.kt:380)
at androidx.navigationpose.NavBackStackEntryProviderKt.LocalOwnersProvider(NavBackStackEntryProvider.kt:47)
at androidx.navigationpose.NavHostKt$NavHost$32.invoke(NavHost.kt:693)
at androidx.navigationpose.NavHostKt$NavHost$32.invoke(NavHost.kt:674)
at androidxpose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jvm.kt:139)
at androidxpose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jvm.kt:35)
at androidxpose.animation.AnimatedContentKt$AnimatedContent$6$1$5.invoke(AnimatedContent.kt:803)
at androidxpose.animation.AnimatedContentKt$AnimatedContent$6$1$5.invoke(AnimatedContent.kt:792)
at androidxpose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jvm.kt:118)
at androidxpose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jvm.kt:35)
at androidxpose.animation.AnimatedVisibilityKt.AnimatedEnterExitImpl(AnimatedVisibility.kt:771)
at androidxpose.animation.AnimatedContentKt$AnimatedContent$6$1.invoke(AnimatedContent.kt:774)
at androidxpose.animation.AnimatedContentKt$AnimatedContent$6$1.invoke(AnimatedContent.kt:757)
at androidxpose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jvm.kt:109)
at androidxpose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jvm.kt:35)
at androidxpose.animation.AnimatedContentKt.AnimatedContent(AnimatedContent.kt:816)
at androidx.navigationpose.NavHostKt.NavHost(NavHost.kt:646)
when there is no navController.navigate("HomeScreen")
in onClick, everything runs fine, also for some reason there is no such problem in other OutlineButtons
OutlineButtonCode:
@Composable
fun OutlineButtonElement(
navController: NavController,
firstNameText: String,
lastNameText: String,
eMailText: String,
passText: String,
context: Context,
checkState: MutableState<Boolean>,
borderColor: Color,
tint: Color
) {
OutlinedButton(
enabled = true,
onClick = {
val passwordError = validatePassword(passText)
if (
firstNameText == ""
|| lastNameText == ""
|| eMailText == ""
|| passText == ""
) {
makeText(
context,
"Please fill in all the details",
Toast.LENGTH_SHORT
).show()
return@OutlinedButton
}
if (passwordError != null) {
makeText(
context,
passwordError,
Toast.LENGTH_SHORT
).show()
return@OutlinedButton
}
val namesPattern = Regex("\"/^((?:\\p{Ll}|\\p{Lu}){2,30}\\s?){2,4}\$/g\"")
if (
firstNameText.contains(namesPattern)
|| lastNameText.contains(namesPattern)
) {
makeText(
context,
"First or Last name contains digits/special symbols",
Toast.LENGTH_SHORT
).show()
return@OutlinedButton
}
if (!(android.util.Patterns.EMAIL_ADDRESS.matcher(eMailText.replace(" ", ""))
.matches())
) {
makeText(
context,
"E-mail is not valid",
Toast.LENGTH_SHORT
).show()
return@OutlinedButton
} else Log.d("E-mail", "Email is valid")
if (!checkState.value) {
makeText(
context,
"Please agree with the Privacy Policy & Terms Of Use",
Toast.LENGTH_SHORT
).show()
return@OutlinedButton
}
data class Person(
val firstName: String,
val lastName: String,
val email: String,
)
val database =
Firebase.database("")
val myRef = database.getReference("users")
auth = Firebase.auth
auth.createUserWithEmailAndPassword(eMailText, passText)
.addOnCompleteListener { task ->
if (task.isSuccessful) {
navController.navigate("HomeScreen")
val eMail = eMailText.replace(".", "_").replace("#", "_")
.replace("$", "_").replace("[", "_").replace("]", "_")
val person =
Person(firstNameText, lastNameText, eMailText)
myRef.child(eMail).setValue(person)
makeText(
context,
"Registered",
Toast.LENGTH_SHORT
).show()
} else {
makeText(
context,
"Registration failed",
Toast.LENGTH_SHORT
).show()
}
}
},
border = BorderStroke(1.dp, color = borderColor),
colors = ButtonDefaults.outlinedButtonColors(
containerColor = Color.Transparent
),
modifier = Modifier
.fillMaxWidth()
.padding(horizontal = 10.dp, vertical = 10.dp)
.height(45.dp),
) {
Icon(
painter = painterResource(id = R.drawable.registered),
modifier = Modifier
.size(30.dp)
.padding(horizontal = 5.dp),
contentDescription = null,
tint = tint
)
val textColorMain = if (isSystemInDarkTheme()) Color.White else Color.Black
Text(
text = "Register",
color = textColorMain,
fontSize = 20.sp,
fontWeight = FontWeight.Bold,
modifier = Modifier.padding(horizontal = 5.dp)
)
}
}
MainActivity code:
class MainActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
enableEdgeToEdge()
setContent {
FoodDeliveryTheme {
Scaffold(modifier = Modifier.fillMaxSize()) { innerPadding ->
val navController = rememberNavController()
Background()
NavHost(navController = navController, startDestination = "RegisterScreen",
) {
composable(
route = "RegisterScreen",
enterTransition = {
fadeIn(
animationSpec = tween(
800, easing = LinearEasing
)
) + slideIntoContainer(
animationSpec = tween(800),
towards = AnimatedContentTransitionScope.SlideDirection.Right
)
},
) {
RegisterScreen(modifier = Modifier.padding(innerPadding), navController = navController)
}
composable(
route = "LoginScreen",
enterTransition = {
fadeIn(
animationSpec = tween(
800, easing = LinearEasing
)
) + slideIntoContainer(
animationSpec = tween(800),
towards = AnimatedContentTransitionScope.SlideDirection.Up
)
},
) {
LoginScreen(modifier = Modifier.padding(innerPadding), navController)
}
composable(
"FotPasswordScreen",
enterTransition =
{
fadeIn(
animationSpec = tween(
800, easing = LinearEasing
)
) + slideIntoContainer(
animationSpec = tween(800),
towards = AnimatedContentTransitionScope.SlideDirection.Left
)
},
) {
FotPasswordScreen(modifier = Modifier.padding(innerPadding), navController)
}
composable(
"HomeScreen",
enterTransition = {
fadeIn(
animationSpec = tween(
800, easing = LinearEasing
)
) + slideIntoContainer(
animationSpec = tween(800),
towards = AnimatedContentTransitionScope.SlideDirection.Down
)
} ,
) {
HomeScreen(modifier = Modifier.padding(innerPadding), navController)
}
}
}
}
}
}
}
I tried to clean project, then build again, didn't help, tried move navcontroller to another function and then call it, didn't help
So, i have a OutlinedButton and for some reason when there is another code besides
navController.navigate("HomeScreen")
my application crashing on starting with this error:
Process: com.rendev.fooddelivery, PID: 23827
java.lang.VerifyError: Verifier rejected class com.rendev.fooddelivery.screens.RegisterScreenKt:
void com.rendev.fooddelivery.screens.RegisterScreenKt.RegisterScreen(androidxpose.ui.Modifier,
androidx.navigation.NavController, androidxpose.runtime.Composer, int, int) failed to verify:
void com.rendev.fooddelivery.screens.RegisterScreenKt.RegisterScreen(androidxpose.ui.Modifier,
androidx.navigation.NavController, androidxpose.runtime.Composer, int, int): [0x1072] copy1 v0<-v268 type=Reference:
androidxpose.ui.Modifier cat=1
(declaration of 'com.rendev.fooddelivery.screens.RegisterScreenKt' appears in /data/app/~~Z0Ucuhnop6JLnikZX1mHFw==/com.rendev.fooddelivery-Try7BmzgN67_EkBMtIOofQ==/base.apk!classes3.dex)
at com.rendev.fooddelivery.ComposableSingletons$MainActivityKt$lambda-1$1$1$2.invoke(MainActivity.kt:52)
at com.rendev.fooddelivery.ComposableSingletons$MainActivityKt$lambda-1$1$1$2.invoke(MainActivity.kt:51)
at androidxpose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jvm.kt:139)
at androidxpose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jvm.kt:35)
at androidx.navigationpose.NavHostKt$NavHost$32$1.invoke(NavHost.kt:694)
at androidx.navigationpose.NavHostKt$NavHost$32$1.invoke(NavHost.kt:693)
at androidxpose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jvm.kt:109)
at androidxpose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jvm.kt:35)
at androidxpose.runtime.CompositionLocalKt.CompositionLocalProvider(CompositionLocal.kt:401)
at androidxpose.runtime.saveable.SaveableStateHolderImpl.SaveableStateProvider(SaveableStateHolder.kt:85)
at androidx.navigationpose.NavBackStackEntryProviderKt.SaveableStateProvider(NavBackStackEntryProvider.kt:65)
at androidx.navigationpose.NavBackStackEntryProviderKt.access$SaveableStateProvider(NavBackStackEntryProvider.kt:1)
at androidx.navigationpose.NavBackStackEntryProviderKt$LocalOwnersProvider$1.invoke(NavBackStackEntryProvider.kt:52)
at androidx.navigationpose.NavBackStackEntryProviderKt$LocalOwnersProvider$1.invoke(NavBackStackEntryProvider.kt:51)
at androidxpose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jvm.kt:109)
at androidxpose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jvm.kt:35)
at androidxpose.runtime.CompositionLocalKt.CompositionLocalProvider(CompositionLocal.kt:380)
at androidx.navigationpose.NavBackStackEntryProviderKt.LocalOwnersProvider(NavBackStackEntryProvider.kt:47)
at androidx.navigationpose.NavHostKt$NavHost$32.invoke(NavHost.kt:693)
at androidx.navigationpose.NavHostKt$NavHost$32.invoke(NavHost.kt:674)
at androidxpose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jvm.kt:139)
at androidxpose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jvm.kt:35)
at androidxpose.animation.AnimatedContentKt$AnimatedContent$6$1$5.invoke(AnimatedContent.kt:803)
at androidxpose.animation.AnimatedContentKt$AnimatedContent$6$1$5.invoke(AnimatedContent.kt:792)
at androidxpose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jvm.kt:118)
at androidxpose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jvm.kt:35)
at androidxpose.animation.AnimatedVisibilityKt.AnimatedEnterExitImpl(AnimatedVisibility.kt:771)
at androidxpose.animation.AnimatedContentKt$AnimatedContent$6$1.invoke(AnimatedContent.kt:774)
at androidxpose.animation.AnimatedContentKt$AnimatedContent$6$1.invoke(AnimatedContent.kt:757)
at androidxpose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jvm.kt:109)
at androidxpose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jvm.kt:35)
at androidxpose.animation.AnimatedContentKt.AnimatedContent(AnimatedContent.kt:816)
at androidx.navigationpose.NavHostKt.NavHost(NavHost.kt:646)
when there is no navController.navigate("HomeScreen")
in onClick, everything runs fine, also for some reason there is no such problem in other OutlineButtons
OutlineButtonCode:
@Composable
fun OutlineButtonElement(
navController: NavController,
firstNameText: String,
lastNameText: String,
eMailText: String,
passText: String,
context: Context,
checkState: MutableState<Boolean>,
borderColor: Color,
tint: Color
) {
OutlinedButton(
enabled = true,
onClick = {
val passwordError = validatePassword(passText)
if (
firstNameText == ""
|| lastNameText == ""
|| eMailText == ""
|| passText == ""
) {
makeText(
context,
"Please fill in all the details",
Toast.LENGTH_SHORT
).show()
return@OutlinedButton
}
if (passwordError != null) {
makeText(
context,
passwordError,
Toast.LENGTH_SHORT
).show()
return@OutlinedButton
}
val namesPattern = Regex("\"/^((?:\\p{Ll}|\\p{Lu}){2,30}\\s?){2,4}\$/g\"")
if (
firstNameText.contains(namesPattern)
|| lastNameText.contains(namesPattern)
) {
makeText(
context,
"First or Last name contains digits/special symbols",
Toast.LENGTH_SHORT
).show()
return@OutlinedButton
}
if (!(android.util.Patterns.EMAIL_ADDRESS.matcher(eMailText.replace(" ", ""))
.matches())
) {
makeText(
context,
"E-mail is not valid",
Toast.LENGTH_SHORT
).show()
return@OutlinedButton
} else Log.d("E-mail", "Email is valid")
if (!checkState.value) {
makeText(
context,
"Please agree with the Privacy Policy & Terms Of Use",
Toast.LENGTH_SHORT
).show()
return@OutlinedButton
}
data class Person(
val firstName: String,
val lastName: String,
val email: String,
)
val database =
Firebase.database("")
val myRef = database.getReference("users")
auth = Firebase.auth
auth.createUserWithEmailAndPassword(eMailText, passText)
.addOnCompleteListener { task ->
if (task.isSuccessful) {
navController.navigate("HomeScreen")
val eMail = eMailText.replace(".", "_").replace("#", "_")
.replace("$", "_").replace("[", "_").replace("]", "_")
val person =
Person(firstNameText, lastNameText, eMailText)
myRef.child(eMail).setValue(person)
makeText(
context,
"Registered",
Toast.LENGTH_SHORT
).show()
} else {
makeText(
context,
"Registration failed",
Toast.LENGTH_SHORT
).show()
}
}
},
border = BorderStroke(1.dp, color = borderColor),
colors = ButtonDefaults.outlinedButtonColors(
containerColor = Color.Transparent
),
modifier = Modifier
.fillMaxWidth()
.padding(horizontal = 10.dp, vertical = 10.dp)
.height(45.dp),
) {
Icon(
painter = painterResource(id = R.drawable.registered),
modifier = Modifier
.size(30.dp)
.padding(horizontal = 5.dp),
contentDescription = null,
tint = tint
)
val textColorMain = if (isSystemInDarkTheme()) Color.White else Color.Black
Text(
text = "Register",
color = textColorMain,
fontSize = 20.sp,
fontWeight = FontWeight.Bold,
modifier = Modifier.padding(horizontal = 5.dp)
)
}
}
MainActivity code:
class MainActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
enableEdgeToEdge()
setContent {
FoodDeliveryTheme {
Scaffold(modifier = Modifier.fillMaxSize()) { innerPadding ->
val navController = rememberNavController()
Background()
NavHost(navController = navController, startDestination = "RegisterScreen",
) {
composable(
route = "RegisterScreen",
enterTransition = {
fadeIn(
animationSpec = tween(
800, easing = LinearEasing
)
) + slideIntoContainer(
animationSpec = tween(800),
towards = AnimatedContentTransitionScope.SlideDirection.Right
)
},
) {
RegisterScreen(modifier = Modifier.padding(innerPadding), navController = navController)
}
composable(
route = "LoginScreen",
enterTransition = {
fadeIn(
animationSpec = tween(
800, easing = LinearEasing
)
) + slideIntoContainer(
animationSpec = tween(800),
towards = AnimatedContentTransitionScope.SlideDirection.Up
)
},
) {
LoginScreen(modifier = Modifier.padding(innerPadding), navController)
}
composable(
"FotPasswordScreen",
enterTransition =
{
fadeIn(
animationSpec = tween(
800, easing = LinearEasing
)
) + slideIntoContainer(
animationSpec = tween(800),
towards = AnimatedContentTransitionScope.SlideDirection.Left
)
},
) {
FotPasswordScreen(modifier = Modifier.padding(innerPadding), navController)
}
composable(
"HomeScreen",
enterTransition = {
fadeIn(
animationSpec = tween(
800, easing = LinearEasing
)
) + slideIntoContainer(
animationSpec = tween(800),
towards = AnimatedContentTransitionScope.SlideDirection.Down
)
} ,
) {
HomeScreen(modifier = Modifier.padding(innerPadding), navController)
}
}
}
}
}
}
}
I tried to clean project, then build again, didn't help, tried move navcontroller to another function and then call it, didn't help
本文标签: androidNavController crashing in OutlineButtonStack Overflow
版权声明:本文标题:android - NavController crashing in OutlineButton - Stack Overflow 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://it.en369.cn/questions/1745653896a2161481.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论