我在我的DialogFragment裡面加了一個私有constructor, private constructor()
結果在vivo的手機上可以顯示,可是在跳轉到另外一個Activity的時候卻導致閃退
目前只有vivo的手機上測到這個問題,ASUS 三星 小米 模擬器都沒發生這個問題
結論:還是盡量避免寫私有建構子,沒有什麼特別優點只有爽爾以
報錯訊息:java.lang.RuntimeException: Unable to start activity ComponentInfo{/com.xxxxx.Activity.VideoStorageActivity.VideoStorageActivity}: androidx.fragment.app.Fragment$InstantiationException: Unable to instantiate fragment com.xxxxx.b.g.f: could not find Fragment constructor
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2982)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3060)
at android.app.ActivityThread.-wrap11(Unknown Source:0)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1769)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:192)
at android.app.ActivityThread.main(ActivityThread.java:6839)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:826)
Caused by: androidx.fragment.app.Fragment$InstantiationException: Unable to instantiate fragment com.xxxxx.b.g.f: could not find Fragment constructor
at androidx.fragment.app.Fragment.instantiate(Fragment.java:8)
at androidx.fragment.app.FragmentContainer.instantiate(FragmentContainer.java:1)
at androidx.fragment.app.FragmentManagerImpl$6.instantiate(FragmentManagerImpl.java:1)
at androidx.fragment.app.FragmentState.instantiate(FragmentState.java:4)
at androidx.fragment.app.FragmentManagerImpl.restoreSaveState(FragmentManagerImpl.java:27)
at androidx.fragment.app.FragmentController.restoreSaveState(FragmentController.java:2)
at androidx.fragment.app.FragmentActivity.onCreate(FragmentActivity.java:3)
at androidx.appcompat.app.AppCompatActivity.onCreate(AppCompatActivity.java:4)
at com.xxxxx.Activity.VideoStorageActivity.VideoStorageActivity.onCreate(VideoStorageActivity.kt:1)
at android.app.Activity.performCreate(Activity.java:7125)
at android.app.Activity.performCreate(Activity.java:7116)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1220)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2935)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3060)
at android.app.ActivityThread.-wrap11(Unknown Source:0)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1769)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:192)
at android.app.ActivityThread.main(ActivityThread.java:6839)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:826)
Caused by: java.lang.NoSuchMethodException: <init> []
at java.lang.Class.getConstructor0(Class.java:2320)
at java.lang.Class.getConstructor(Class.java:1725)
at androidx.fragment.app.Fragment.instantiate(Fragment.java:4)
at androidx.fragment.app.FragmentContainer.instantiate(FragmentContainer.java:1)
at androidx.fragment.app.FragmentManagerImpl$6.instantiate(FragmentManagerImpl.java:1)
at androidx.fragment.app.FragmentState.instantiate(FragmentState.java:4)
at androidx.fragment.app.FragmentManagerImpl.restoreSaveState(FragmentManagerImpl.java:27)
at androidx.fragment.app.FragmentController.restoreSaveState(FragmentController.java:2)
at androidx.fragment.app.FragmentActivity.onCreate(FragmentActivity.java:3)
at androidx.appcompat.app.AppCompatActivity.onCreate(AppCompatActivity.java:4)
at com.xxxxx.Activity.VideoStorageActivity.VideoStorageActivity.onCreate(VideoStorageActivity.kt:1)
at android.app.Activity.performCreate(Activity.java:7125)
at android.app.Activity.performCreate(Activity.java:7116)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1220)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2935)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3060)
at android.app.ActivityThread.-wrap11(Unknown Source:0)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1769)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:192)
at android.app.ActivityThread.main(ActivityThread.java:6839)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:826)