I am writing an application where Activity A launches Activity B using
startActivityForResult(intent, -101); but when called, it responded back with following error log:
E/AndroidRuntime( 1708): java.lang.IllegalArgumentException: Can only use lower 16 bits for requestCode E/AndroidRuntime( 1708): at android.support.v4.app.FragmentActivity.startActivityForResult(FragmentActivity.java:837) Probably it could be -101 but I am not sure. Does any one have any idea on this?
You get this exception only in android.support.v4.app.FragmentActivity and not when you use android.app.Activity.
startActivityForResult() in FragmentActivity requires the requestCode to be of 16 bits, meaning the range is from 0 to 65535.
Also, validateRequestPermissionsRequestCode in FragmentActivity requires requestCode to be of 16 bits, meaning the range is from 0 to 65535.
For more info(if you want to see the source code) : https://stackoverflow.com/a/33331459/4747587
If you're using ActivityResult APIs, add this dependency to fix this issue:
implementation "androidx.fragment:fragment:1.3.4"
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With