我正在開發新專案,當我運行專案時出現以下例外
E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.chargeatfriends.android, PID: 31595
androidx.fragment.app.Fragment$InstantiationException: Unable to instantiate fragment com.chargeatfriends.android.ui.reserve.ReserveFragment: calling Fragment constructor caused an exception
com.chargeatfriends.android.ui.map.MapFragment$$ExternalSyntheticLambda0.onClick(Unknown Source:2)
at android.view.View.performClick(View.java:7870)
at android.widget.TextView.performClick(TextView.java:14970)
at android.view.View.performClickInternal(View.java:7839)
at android.view.View.access$3600(View.java:886)
at android.view.View$PerformClick.run(View.java:29363)
at android.os.Handler.handleCallback(Handler.java:883)
at android.os.Handler.dispatchMessage(Handler.java:100)
at android.os.Looper.loop(Looper.java:237)
at android.app.ActivityThread.main(ActivityThread.java:7948)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1075)
Caused by: java.lang.reflect.InvocationTargetException
at java.lang.reflect.Constructor.newInstance0(Native Method)
at java.lang.reflect.Constructor.newInstance(Constructor.java:343)
at androidx.fragment.app.Fragment.instantiate(Fragment.java:615)
at androidx.fragment.app.FragmentContainer.instantiate(FragmentContainer.java:57)
at androidx.fragment.app.FragmentManager$2.instantiate(FragmentManager.java:448)
at androidx.navigation.fragment.FragmentNavigator.navigate(FragmentNavigator.kt:190)
at androidx.navigation.fragment.FragmentNavigator.navigate(FragmentNavigator.kt:162)
at androidx.navigation.NavController.navigateInternal(NavController.kt:260)
at androidx.navigation.NavController.navigate(NavController.kt:1719)
at androidx.navigation.NavController.navigate(NavController.kt:1545)
at androidx.navigation.NavController.navigate(NavController.kt:1472)
at androidx.navigation.NavController.navigate(NavController.kt:1454)
at androidx.navigation.NavController.navigate(NavController.kt:1437)
at com.chargeatfriends.android.ui.map.MapFragment.clickListener$lambda-0(MapFragment.kt:176)
at com.chargeatfriends.android.ui.map.MapFragment.$r8$lambda$f_HcQmFOF4yHY3eWCzm1TTIl2BA(Unknown Source:0)
at com.chargeatfriends.android.ui.map.MapFragment$$ExternalSyntheticLambda0.onClick(Unknown Source:2)
at android.view.View.performClick(View.java:7870)
at android.widget.TextView.performClick(TextView.java:14970)
Caused by: kotlin.UninitializedPropertyAccessException: lateinit property sharedPref has not been initialized
at com.chargeatfriends.android.ui.reserve.ReserveFragment.getSharedPref(ReserveFragment.kt:61)
at com.chargeatfriends.android.ui.reserve.ReserveFragment.<init>(ReserveFragment.kt:97)
at java.lang.reflect.Constructor.newInstance0(Native Method)
at java.lang.reflect.Constructor.newInstance(Constructor.java:343)
at androidx.fragment.app.Fragment.instantiate(Fragment.java:615)
at androidx.fragment.app.FragmentContainer.instantiate(FragmentContainer.java:57)
at androidx.fragment.app.FragmentManager$2.instantiate(FragmentManager.java:448)
at androidx.navigation.fragment.FragmentNavigator.navigate(FragmentNavigator.kt:190)
at androidx.navigation.fragment.FragmentNavigator.navigate(FragmentNavigator.kt:162)
at androidx.navigation.NavController.navigateInternal(NavController.kt:260)
at androidx.navigation.NavController.navigate(NavController.kt:1719)
at androidx.navigation.NavController.navigate(NavController.kt:1545)
at androidx.navigation.NavController.navigate(NavController.kt:1472)
at androidx.navigation.NavController.navigate(NavController.kt:1454)
at androidx.navigation.NavController.navigate(NavController.kt:1437)
at com.chargeatfriends.android.ui.map.MapFragment.clickListener$lambda-0(MapFragment.kt:176)
at com.chargeatfriends.android.ui.map.MapFragment.$r8$lambda$f_HcQmFOF4yHY3eWCzm1TTIl2BA(Unknown Source:0)
at com.chargeatfriends.android.ui.map.MapFragment$
$ExternalSyntheticLambda0.onClick(未知來源:2)
在我的 ReserveFragment.kt 代碼下方,這就是為什么共享為 gist https://gist.github.com/kyodgorbek/b78a0fa14f949baf9209b8ff5914aa02
在我的 MapFragment.kt 下方單擊按鈕時出現例外
val clickListener = View.OnClickListener { 視圖 ->
when (view.getId()) {
R.id.gotoBookingButton -> {
sharedPref.CurrentChargePoint = CurrentChargePoint
if (sharedPref.token.length > 0) {
Log.d("@@@@@@@", "${sharedPref.token}: ")
sharedPref.isAdhocBooking = false
findNavController().navigate(R.id.navigation_reserve) // in this line
} else {
findNavController().navigate(R.id.navigation_settings_login)
}
}
R.id.mapView -> {
StationInfo.isVisible = false
}
R.id.qrButton -> {
findNavController().navigate(R.id.activity_qr)
}
}
}
在我使用 SharedPreferences 的 SharedPref.kt 類下方
在我的 ServerModule 和 SharedPref.kt 類下面 https://gist.github.com/kyodgorbek/84f77dfd49a21066339053d5c6118883
我嘗試過什么我嘗試在 呼叫 Fragment 建構式后導致例外,kotlin?
所有stackoverflow都回答了類似的問題并使快取重新啟動無效并對其進行了除錯也沒有成功任何建議都非常感謝
uj5u.com熱心網友回復:
問題出在這個變數上
@Inject
lateinit var sharedPref:SharedPref
你在這一行中使用它
var EndTime: LocalTime = LocalTime.now().plusSeconds(3600 sharedPref.defaultChargeTime)
如果您提供SharedPref課程,請檢查您的依賴模塊
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/513345.html
