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