Closed kakarrot closed 2 years ago
Hi @kakarrot and thank you for your feedback.
Could you please specify the SDK version? I suppose it is the latest 1.0.11
?
Could your provide me also the Android version on which the app was running, maybe the specific device and also what is the context of the crash?
Thanks in advance :)
This is strange because in the latest 1.0.11
, there is no im.crisp.client.internal.ui
package at all, it is obfuscated by R8.
Moreover, there is no direct usage in layouts of fragments that could cause a fragment instantiation from the inflater.
Are you trying to include directly the fragment instead of the activity? This feature is coming in a future release as described in #70 ;)
No, I'm using 1.0.9, not trying to directly the fragment instead of the activity, just like the sample code, which init code in appliction,start ChatActvity in somewhere.
Strange... I tried 1.0.9
but got no error about im.crisp.client.internal.ui.a.a.c
fragment instantiation which is the error dialog on chat activity starting if any error occured during connection... I checked the .aar
package and needed methods (included the constructor) exist...
However, if I enable R8 full mode (add android.enableR8.fullMode=true
in gradle.properties
), I got a crash but about generic classes which has been fixed in 1.0.10
with #96.
I don't know where this crash could come from :/
Moved from @StevenWatremez post in #115
Context
Same as the previous one we have an other crash that occurs 2 times for 2 users.
Crash log
Fatal Exception: java.lang.RuntimeException: Unable to start activity ComponentInfo{fr.leocare.app/im.crisp.client.ChatActivity}: androidx.fragment.app.Fragment$InstantiationException: Unable to instantiate fragment im.crisp.client.internal.ui.a.a.c: could not find Fragment constructor at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:4037) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:4203) at android.app.ActivityThread.handleRelaunchActivityInner(ActivityThread.java:6340) at android.app.ActivityThread.handleRelaunchActivity(ActivityThread.java:6205) at android.app.servertransaction.ActivityRelaunchItem.execute(ActivityRelaunchItem.java:71) at android.app.servertransaction.ActivityTransactionItem.execute(ActivityTransactionItem.java:45) at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135) at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95) at android.app.ClientTransactionHandler.executeTransaction(ClientTransactionHandler.java:65) at android.app.ActivityThread.handleRelaunchActivityLocally(ActivityThread.java:6294) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2450) at android.os.Handler.dispatchMessage(Handler.java:106) at android.os.Looper.loopOnce(Looper.java:226) at android.os.Looper.loop(Looper.java:313) at android.app.ActivityThread.main(ActivityThread.java:8641) at java.lang.reflect.Method.invoke(Method.java) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:567) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1133) Caused by androidx.fragment.app.Fragment$InstantiationException: Unable to instantiate fragment im.crisp.client.internal.ui.a.a.c: could not find Fragment constructor at androidx.fragment.app.Fragment.instantiate(Fragment.java:630) at androidx.fragment.app.FragmentContainer.instantiate(FragmentContainer.java:57) at androidx.fragment.app.FragmentManager$2.instantiate(FragmentManager.java:448) at androidx.fragment.app.FragmentState.instantiate(FragmentState.java:81) at androidx.fragment.app.FragmentStateManager.<init>(FragmentStateManager.java:85) at androidx.fragment.app.FragmentManager.restoreSaveStateInternal(FragmentManager.java:2410) at androidx.fragment.app.FragmentManager.attachController(FragmentManager.java:2584) at androidx.fragment.app.FragmentController.attachHost(FragmentController.java:116) at androidx.fragment.app.FragmentActivity.lambda$init$1$androidx-fragment-app-FragmentActivity(FragmentActivity.java:128) at androidx.fragment.app.FragmentActivity$$ExternalSyntheticLambda0.onContextAvailable(:2) at androidx.activity.contextaware.ContextAwareHelper.dispatchOnContextAvailable(ContextAwareHelper.java:99) at androidx.activity.ComponentActivity.onCreate(ComponentActivity.java:320) at androidx.fragment.app.FragmentActivity.onCreate(FragmentActivity.java:249) at im.crisp.client.ChatActivity.onCreate() at android.app.Activity.performCreate(Activity.java:8282) at android.app.Activity.performCreate(Activity.java:8262) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1329) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:4011) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:4203) at android.app.ActivityThread.handleRelaunchActivityInner(ActivityThread.java:6340) at android.app.ActivityThread.handleRelaunchActivity(ActivityThread.java:6205) at android.app.servertransaction.ActivityRelaunchItem.execute(ActivityRelaunchItem.java:71) at android.app.servertransaction.ActivityTransactionItem.execute(ActivityTransactionItem.java:45) at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135) at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95) at android.app.ClientTransactionHandler.executeTransaction(ClientTransactionHandler.java:65) at android.app.ActivityThread.handleRelaunchActivityLocally(ActivityThread.java:6294) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2450) at android.os.Handler.dispatchMessage(Handler.java:106) at android.os.Looper.loopOnce(Looper.java:226) at android.os.Looper.loop(Looper.java:313) at android.app.ActivityThread.main(ActivityThread.java:8641) at java.lang.reflect.Method.invoke(Method.java) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:567) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1133) Caused by java.lang.NoSuchMethodException: im.crisp.client.internal.ui.a.a.c.<init> [] at java.lang.Class.getConstructor0(Class.java:2363) at java.lang.Class.getConstructor(Class.java:1759) 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.fragment.app.FragmentState.instantiate(FragmentState.java:81) at androidx.fragment.app.FragmentStateManager.<init>(FragmentStateManager.java:85) at androidx.fragment.app.FragmentManager.restoreSaveStateInternal(FragmentManager.java:2410) at androidx.fragment.app.FragmentManager.attachController(FragmentManager.java:2584) at androidx.fragment.app.FragmentController.attachHost(FragmentController.java:116) at androidx.fragment.app.FragmentActivity.lambda$init$1$androidx-fragment-app-FragmentActivity(FragmentActivity.java:128) at androidx.fragment.app.FragmentActivity$$ExternalSyntheticLambda0.onContextAvailable(:2) at androidx.activity.contextaware.ContextAwareHelper.dispatchOnContextAvailable(ContextAwareHelper.java:99) at androidx.activity.ComponentActivity.onCreate(ComponentActivity.java:320) at androidx.fragment.app.FragmentActivity.onCreate(FragmentActivity.java:249) at im.crisp.client.ChatActivity.onCreate() at android.app.Activity.performCreate(Activity.java:8282) at android.app.Activity.performCreate(Activity.java:8262) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1329) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:4011) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:4203) at android.app.ActivityThread.handleRelaunchActivityInner(ActivityThread.java:6340) at android.app.ActivityThread.handleRelaunchActivity(ActivityThread.java:6205) at android.app.servertransaction.ActivityRelaunchItem.execute(ActivityRelaunchItem.java:71) at android.app.servertransaction.ActivityTransactionItem.execute(ActivityTransactionItem.java:45) at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135) at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95) at android.app.ClientTransactionHandler.executeTransaction(ClientTransactionHandler.java:65) at android.app.ActivityThread.handleRelaunchActivityLocally(ActivityThread.java:6294) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2450) at android.os.Handler.dispatchMessage(Handler.java:106) at android.os.Looper.loopOnce(Looper.java:226) at android.os.Looper.loop(Looper.java:313) at android.app.ActivityThread.main(ActivityThread.java:8641) at java.lang.reflect.Method.invoke(Method.java) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:567) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1133)
Information
OS Version : Android 12 et 11 Phones : Galaxy S20 FE, Redmi Note 11 SDK Version : 1.0.9
I've just fixed this crash (public no args constructor was missing for dialog fragment...). It will be released in the next 1.0.12 release. I let you know when it will be available.
Nice thanks, I will try the next release.
@kakarrot @StevenWatremez 1.0.12
fixing this issue has just been released.
It can take a few hours before it will be available.
I close the issue.
Caused by androidx.fragment.app.Fragment$InstantiationException: Unable to instantiate fragment im.crisp.client.internal.ui.a.a.c: could not find Fragment constructor at androidx.fragment.app.Fragment.instantiate(Fragment.java:66) at androidx.fragment.app.FragmentContainer.instantiate(FragmentContainer.java) at androidx.fragment.app.FragmentManager$3.instantiate(FragmentManager.java:17) at androidx.fragment.app.FragmentStateManager.(FragmentStateManager.java:15)
at androidx.fragment.app.FragmentManager.restoreSaveState(FragmentManager.java:108)
at androidx.fragment.app.FragmentController.restoreSaveState(FragmentController.java:8)
at androidx.fragment.app.FragmentActivity$2.onContextAvailable(FragmentActivity.java:30)
at androidx.activity.contextaware.ContextAwareHelper.dispatchOnContextAvailable(ContextAwareHelper.java:20)
at androidx.activity.ComponentActivity.onCreate(ComponentActivity.java:7)
at androidx.fragment.app.FragmentActivity.onCreate(FragmentActivity.java)
at org.junit.Assert.fail(Assert.java)
at android.app.Activity.performCreate(Activity.java:8108)
at android.app.Activity.performCreate(Activity.java:8092)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1309)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3501)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3703)
at android.app.ActivityThread.handleRelaunchActivityInner(ActivityThread.java:5589)
at android.app.ActivityThread.handleRelaunchActivity(ActivityThread.java:5488)
at android.app.servertransaction.ActivityRelaunchItem.execute(ActivityRelaunchItem.java:69)
at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)
at android.app.ClientTransactionHandler.executeTransaction(ClientTransactionHandler.java:58)
at android.app.ActivityThread.handleRelaunchActivityLocally(ActivityThread.java:5541)
at android.app.ActivityThread.access$3500(ActivityThread.java:252)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2162)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:250)
at android.app.ActivityThread.main(ActivityThread.java:7886)
at java.lang.reflect.Method.invoke(Method.java)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:958)
Caused by java.lang.NoSuchMethodException: im.crisp.client.internal.ui.a.a.c. []
at java.lang.Class.getConstructor0(Class.java:2332)
at java.lang.Class.getConstructor(Class.java:1728)
at androidx.fragment.app.Fragment.instantiate(Fragment.java:15)
at androidx.fragment.app.FragmentContainer.instantiate(FragmentContainer.java)
at androidx.fragment.app.FragmentManager$3.instantiate(FragmentManager.java:17)
at androidx.fragment.app.FragmentStateManager.(FragmentStateManager.java:15)
at androidx.fragment.app.FragmentManager.restoreSaveState(FragmentManager.java:108)
at androidx.fragment.app.FragmentController.restoreSaveState(FragmentController.java:8)
at androidx.fragment.app.FragmentActivity$2.onContextAvailable(FragmentActivity.java:30)
at androidx.activity.contextaware.ContextAwareHelper.dispatchOnContextAvailable(ContextAwareHelper.java:20)
at androidx.activity.ComponentActivity.onCreate(ComponentActivity.java:7)
at androidx.fragment.app.FragmentActivity.onCreate(FragmentActivity.java)
at org.junit.Assert.fail(Assert.java)
at android.app.Activity.performCreate(Activity.java:8108)
at android.app.Activity.performCreate(Activity.java:8092)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1309)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3501)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3703)
at android.app.ActivityThread.handleRelaunchActivityInner(ActivityThread.java:5589)
at android.app.ActivityThread.handleRelaunchActivity(ActivityThread.java:5488)
at android.app.servertransaction.ActivityRelaunchItem.execute(ActivityRelaunchItem.java:69)
at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)
at android.app.ClientTransactionHandler.executeTransaction(ClientTransactionHandler.java:58)
at android.app.ActivityThread.handleRelaunchActivityLocally(ActivityThread.java:5541)
at android.app.ActivityThread.access$3500(ActivityThread.java:252)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2162)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:250)
at android.app.ActivityThread.main(ActivityThread.java:7886)
at java.lang.reflect.Method.invoke(Method.java)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:958)