Recently we are preparing for Android 12 and we updated our compileSdkVersion and targetSdkVersion to 31
After updating to 31, TWA is unable to be launched. Error given is
java.lang.IllegalArgumentException: xxx.twa: Targeting S+ (version 31 and above) requires that one of FLAG_IMMUTABLE or FLAG_MUTABLE be specified when creating a PendingIntent.
Strongly consider using FLAG_IMMUTABLE, only use FLAG_MUTABLE if some functionality depends on the PendingIntent being mutable, e.g. if it needs to be used with inline replies or bubbles.
at android.app.PendingIntent.checkFlags(PendingIntent.java:375)
at android.app.PendingIntent.getActivityAsUser(PendingIntent.java:458)
at android.app.PendingIntent.getActivity(PendingIntent.java:444)
at android.app.PendingIntent.getActivity(PendingIntent.java:408)
at androidx.browser.customtabs.CustomTabsClient.createSessionId(CustomTabsClient.java:231)
at androidx.browser.customtabs.CustomTabsClient.newSession(CustomTabsClient.java:269)
at com.google.androidbrowserhelper.trusted.TwaLauncher$TwaCustomTabsServiceConnection.onCustomTabsServiceConnected(TwaLauncher.java:324)
at androidx.browser.customtabs.CustomTabsServiceConnection.onServiceConnected(CustomTabsServiceConnection.java:57)
at android.app.LoadedApk$ServiceDispatcher.doConnected(LoadedApk.java:2077)
at android.app.LoadedApk$ServiceDispatcher$RunConnection.run(LoadedApk.java:2110)
at android.os.Handler.handleCallback(Handler.java:938)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loopOnce(Looper.java:201)
at android.os.Looper.loop(Looper.java:288)
at android.app.ActivityThread.main(ActivityThread.java:7842)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:548)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1003)
After updating androidx.browser:browser implementation 'androidx.browser:browser:1.4.0-beta01' i got the below error
java.lang.IllegalArgumentException: xxx.twa: Targeting S+ (version 31 and above) requires that one of FLAG_IMMUTABLE or FLAG_MUTABLE be specified when creating a PendingIntent.
Strongly consider using FLAG_IMMUTABLE, only use FLAG_MUTABLE if some functionality depends on the PendingIntent being mutable, e.g. if it needs to be used with inline replies or bubbles.
at android.app.PendingIntent.checkFlags(PendingIntent.java:375)
at android.app.PendingIntent.getActivityAsUser(PendingIntent.java:458)
at android.app.PendingIntent.getActivity(PendingIntent.java:444)
at android.app.PendingIntent.getActivity(PendingIntent.java:408)
at com.google.androidbrowserhelper.trusted.FocusActivity.addToIntent(FocusActivity.java:43)
at com.google.androidbrowserhelper.trusted.TwaLauncher.launchWhenSplashScreenReady(TwaLauncher.java:272)
at com.google.androidbrowserhelper.trusted.TwaLauncher.lambda$launchWhenSessionEstablished$4$TwaLauncher(TwaLauncher.java:257)
at com.google.androidbrowserhelper.trusted.-$$Lambda$TwaLauncher$6zo6viK_vVSs4bt2THXs48ruews.run(Unknown Source:6)
at com.google.androidbrowserhelper.trusted.splashscreens.PwaWrapperSplashScreenStrategy.lambda$onSplashImageTransferred$1$PwaWrapperSplashScreenStrategy(PwaWrapperSplashScreenStrategy.java:208)
at com.google.androidbrowserhelper.trusted.splashscreens.-$$Lambda$PwaWrapperSplashScreenStrategy$p-f_rUE4TsZEGw17K3MBDrUxlsQ.run(Unknown Source:4)
at com.google.androidbrowserhelper.trusted.splashscreens.PwaWrapperSplashScreenStrategy.runWhenEnterAnimationComplete(PwaWrapperSplashScreenStrategy.java:215)
at com.google.androidbrowserhelper.trusted.splashscreens.PwaWrapperSplashScreenStrategy.onSplashImageTransferred(PwaWrapperSplashScreenStrategy.java:207)
at com.google.androidbrowserhelper.trusted.splashscreens.PwaWrapperSplashScreenStrategy.lambda$configureTwaBuilder$0$PwaWrapperSplashScreenStrategy(PwaWrapperSplashScreenStrategy.java:195)
at com.google.androidbrowserhelper.trusted.splashscreens.-$$Lambda$PwaWrapperSplashScreenStrategy$AEuRt7oVnGOP2vf-Uvl2RaqkFW4.onFinished(Unknown Source:6)
at com.google.androidbrowserhelper.trusted.splashscreens.SplashImageTransferTask$1.onPostExecute(SplashImageTransferTask.java:144)
at com.google.androidbrowserhelper.trusted.splashscreens.SplashImageTransferTask$1.onPostExecute(SplashImageTransferTask.java:91)
at android.os.AsyncTask.finish(AsyncTask.java:771)
at android.os.AsyncTask.access$900(AsyncTask.java:199)
at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:788)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loopOnce(Looper.java:201)
at android.os.Looper.loop(Looper.java:288)
at android.app.ActivityThread.main(ActivityThread.java:7842)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:548)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1003)
I tried to find an updated version of com.google.androidbrowserhelper but is unable to find any. I am currently using implementation 'com.google.androidbrowserhelper:androidbrowserhelper:2.2.2'
Have anyone encounter this and is able to help?
This is a known issue and needs changes on the underlying androidx.browser library. The changes are in 1.4.0-rc1, which should go stable in the next weeks. Another change was required in android-browser-helper and once the change to androidx.browser is out, we'll release an update that will work well with targetSdk 31.
You could use the release-candidate version of android.browser and build your own android-browser-helper, but I'd recommend waiting for the production versions to upgrade to target SDK 31.
I recently started to get this error for both iOS and Android. I don't know what is causing this problem. In all the other instances of this error, there is probably a NaN value or some other unexpected value but in my case, everything is a valid value. For iOS, this is happening when I am callind the PushNotificationIOS.scheduleNotification. For Android, it happens, when I called a native react method.
This is only happening when I am running in dev mode. Please let me know what could be the problem here or how can I debug this problem.
2019-10-18 21:27:16.745 10843-11080/com.myapp E/ReactNativeJS: [{"fireDate":"2019-11-01T16:30:00.000Z","repeat":"2","repeatType":"weeks","creatorTimezone":"Asia/Kolkata","alarmId":"-LrU_OrkWvoCU-W8VY-A","alarmName":"Personal Reminder","type":"alarm","alarmType":"Personal","alarmDate":"2019-11-01T16:30:00.000Z","alarmAlert":"Personal Reminder - It's time.","shortAlarmAlert":"It's time.","cascadingAlarmInterval":900000,"recipientAlarmInterval":0,"alarmRingtone":{"label":"Hollywood Adventure","type":"inbuilt","value":"hollywood_adventure"},"vibrate":"true","volume":80,"version":2,"ringtoneDuration":60000,"uid":"-LrTbAdkCtVoFBfDKBwk","username":"udi","ringtonePath":"android.resource://com.myapp/raw/hollywood_adventure"}] is not usable as a native method argument
2019-10-18 21:27:16.766 10843-11080/com.myapp I/ReactNativeJS: 'Failed to print error: ', 'Exception in HostFunction: Malformed calls from JS: field sizes are different.\n\n[[34,45],[4,2],[["[{\\"fireDate\\":\\"2019-11-01T16:30:00.000Z\\",\\"repeat\\":\\"2\\",\\"repeatType\\":\\"weeks\\",\\"creatorTimezone\\":\\"Asia/Kolkata\\",\\"alarmId\\":\\"-LrU_OrkWvoCU-W8VY-A\\",\\"alarmName\\":\\"Personal Reminder\\",\\"type\\":\\"alarm\\",\\"alarmType\\":\\"Personal\\",\\"alarmDate\\":\\"2019-11-01T16:30:00.000Z\\",\\"alarmAlert\\":\\"Personal Reminder - It\'s time.\\",\\"shortAlarmAlert\\":\\"It\'s time.\\",\\"cascadingAlarmInterval\\":900000,\\"recipientAlarmInterval\\":0,\\"alarmRingtone\\":{\\"label\\":\\"Hollywood Adventure\\",\\"type\\":\\"inbuilt\\",\\"value\\":\\"hollywood_adventure\\"},\\"vibrate\\":\\"true\\",\\"volume\\":80,\\"version\\":2,\\"ringtoneDuration\\":60000,\\"uid\\":\\"-LrTbAdkCtVoFBfDKBwk\\",\\"username\\":\\"udi\\",\\"ringtonePath\\":\\"android.resource://com.myapp/raw/hollywood_adventure\\"}] is not usable as a native method argument",[{"column":20,"lineNumber":4382,"arguments":[],"methodName":"enqueueNativeCall","file":"http://10.0.2.2:8081/index.android.bundle?platform=android&dev=true&minify=false"},{"column":42,"lineNumber":4000,"arguments":[],"methodName":"fn","file":"http://10.0.2.2:8081/index.android.bundle?platform=android&dev=true&minify=false"},{"column":41,"lineNumber":284071,"arguments":[],"methodName":"scheduleNotification","file":"http://10.0.2.2:8081/index.android.bundle?platform=android&dev=true&minify=false"},{"column":53,"lineNumber":213975,"arguments":[],"methodName":"cancelOrRescheduleNotificationForAlarm","file":"http://10.0.2.2:8081/index.android.bundle?platform=android&dev=true&minify=false"},{"column":53,"lineNumber":213917,"arguments":[],"methodName":"markAlarmAsAcknowledged","file":"http://10.0.2.2:8081/index.android.bundle?platform=android&dev=true&minify=false"},{"column":17,"lineNumber":197088,"arguments":[],"methodName":"withConnectAndAuthenticationOptional","file":"http://10.0.2.2:8081/index.android.bundle?platform=android&dev=true&minify=false"},{"column":67,"lineNumber":213997,"arguments":[],"methodName":"onIAmUp","file":"http://10.0.2.2:8081/index.android.bundle?platform=android&dev=true&minify=false"},{"column":47,"lineNumber":53662,"arguments":[],"methodName":"touchableHandlePress","file":"http://10.0.2.2:8081/index.android.bundle?platform=android&dev=true&minify=false"},{"column":null,"lineNumber":null,"arguments":[],"methodName":"touchableHandlePress","file":"[native code]"},{"column":36,"lineNumber":53205,"arguments":[],"methodName":"_performSideEffectsForTransition","file":"http://10.0.2.2:8081/index.android.bundle?platform=android&dev=true&minify=false"},{"column":null,"lineNumber":null,"arguments":[],"methodName":"_performSideEffectsForTransition","file":"[native code]"},{"column":46,"lineNumber":53131,"arguments":[],"methodName":"_receiveSignal","file":"http://10.0.2.2:8081/index.android.bundle?platform=android&dev=true&minify=false"},{"column":null,"lineNumber":null,"arguments":[],"methodName":"_receiveSignal","file":"[native code]"},{"column":26,"lineNumber":53010,"arguments":[],"methodName":"touchableHandleResponderRelease","file":"http://10.0.2.2:8081/index.android.bundle?platform=android&dev=true&minify=false"},{"column":null,"lineNumber":null,"arguments":[],"methodName":"touchableHandleResponderRelease","file":"[native code]"},{"column":21,"lineNumber":14049,"arguments":[],"methodName":"invokeGuardedCallbackImpl","file":"http://10.0.2.2:8081/index.android.bundle?platform=android&dev=true&minify=false"},{"column":42,"lineNumber":14145,"arguments":[],"methodName":"invokeGuardedCallback","file":"http://10.0.2.2:8081/index.android.bundle?platform=android&dev=true&minify=false"},{"column":36,"lineNumber":14149,"arguments":[],"methodName":"invokeGuardedCallbackAndCatchFirstError","file":"http://10.0.2.2:8081/index.android.bundle?platform=android&dev=true&minify=false"},{"column":48,"lineNumber":14256,"arguments":[],"methodName":"executeDispatch","file":"http://10.0.2.2:8081/in
2019-10-18 21:27:16.770 10843-11080/com.myapp E/unknown:ReactNative: Exception in native call
java.lang.RuntimeException: Error calling RCTEventEmitter.receiveTouches
at com.facebook.react.bridge.queue.NativeRunnable.run(Native Method)
at android.os.Handler.handleCallback(Handler.java:873)
at android.os.Handler.dispatchMessage(Handler.java:99)
at com.facebook.react.bridge.queue.MessageQueueThreadHandler.dispatchMessage(MessageQueueThreadHandler.java:29)
at android.os.Looper.loop(Looper.java:193)
at com.facebook.react.bridge.queue.MessageQueueThreadImpl$4.run(MessageQueueThreadImpl.java:232)
at java.lang.Thread.run(Thread.java:764)
Caused by: com.facebook.jni.CppException: [{"fireDate":"2019-11-01T16:30:00.000Z","repeat":"2","repeatType":"weeks","creatorTimezone":"Asia/Kolkata","alarmId":"-LrU_OrkWvoCU-W8VY-A","alarmName":"Personal Reminder","type":"alarm","alarmType":"Personal","alarmDate":"2019-11-01T16:30:00.000Z","alarmAlert":"Personal Reminder - It's time.","shortAlarmAlert":"It's time.","cascadingAlarmInterval":900000,"recipientAlarmInterval":0,"alarmRingtone":{"label":"Hollywood Adventure","type":"inbuilt","value":"hollywood_adventure"},"vibrate":"true","volume":80,"version":2,"ringtoneDuration":60000,"uid":"-LrTbAdkCtVoFBfDKBwk","username":"udi","ringtonePath":"android.resource://com.myapp/raw/hollywood_adventure"}] is not usable as a native method argument
I am learning Kotlin but my computer so bad to use Intellij. I downladed VSCODE and I followed all steps. I mean Code Runner, Kotlin Language extension and add to path. But when I run to code any code. Like this
fun fun main(args: Array<String>) {
print("Hello")
}
Vscode return this message
exception: java.lang.ArrayIndexOutOfBoundsException: 448
at org.jetbrains.org.objectweb.asm.ClassReader.readUnsignedShort(ClassReader.java:2464)
at org.jetbrains.org.objectweb.asm.ClassReader.readUTF8(ClassReader.java:2525)
at org.jetbrains.org.objectweb.asm.ClassReader.readModule(ClassReader.java:761)
at org.jetbrains.org.objectweb.asm.ClassReader.accept(ClassReader.java:646)
at org.jetbrains.org.objectweb.asm.ClassReader.accept(ClassReader.java:507)
at org.jetbrains.kotlin.resolve.jvm.modules.JavaModuleInfo$Companion.read(JavaModuleInfo.kt:67)
at org.jetbrains.kotlin.cli.jvm.modules.CliJavaModuleFinder.findSystemModule(CliJavaModuleFinder.kt:44)
at org.jetbrains.kotlin.cli.jvm.modules.CliJavaModuleFinder.access$findSystemModule(CliJavaModuleFinder.kt:25)
at org.jetbrains.kotlin.cli.jvm.modules.CliJavaModuleFinder$systemModules$1.invoke(CliJavaModuleFinder.kt:37)
at org.jetbrains.kotlin.cli.jvm.modules.CliJavaModuleFinder$systemModules$1.invoke(CliJavaModuleFinder.kt:25)
at kotlin.sequences.TransformingSequence$iterator$1.next(Sequences.kt:149)
at kotlin.sequences.FilteringSequence$iterator$1.calcNext(Sequences.kt:109)
at kotlin.sequences.FilteringSequence$iterator$1.hasNext(Sequences.kt:133)
at kotlin.sequences.FlatteningSequence$iterator$1.ensureItemIterator(Sequences.kt:254)
at kotlin.sequences.FlatteningSequence$iterator$1.hasNext(Sequences.kt:241)
at kotlin.sequences.SequencesKt___SequencesKt.none(_Sequences.kt:1239)
at org.jetbrains.kotlin.cli.jvm.compiler.ClasspathRootsResolver.addModularRoots(ClasspathRootsResolver.kt:227)
at org.jetbrains.kotlin.cli.jvm.compiler.ClasspathRootsResolver.computeRoots(ClasspathRootsResolver.kt:124)
at org.jetbrains.kotlin.cli.jvm.compiler.ClasspathRootsResolver.convertClasspathRoots(ClasspathRootsResolver.kt:79)
at org.jetbrains.kotlin.cli.jvm.compiler.KotlinCoreEnvironment.<init>(KotlinCoreEnvironment.kt:230)
at org.jetbrains.kotlin.cli.jvm.compiler.KotlinCoreEnvironment.<init>(KotlinCoreEnvironment.kt:114)
at org.jetbrains.kotlin.cli.jvm.compiler.KotlinCoreEnvironment$Companion.createForProduction(KotlinCoreEnvironment.kt:409)
at org.jetbrains.kotlin.cli.jvm.K2JVMCompiler.createCoreEnvironment(K2JVMCompiler.kt:286)
at org.jetbrains.kotlin.cli.jvm.K2JVMCompiler.createEnvironmentWithScriptingSupport(K2JVMCompiler.kt:276)
at org.jetbrains.kotlin.cli.jvm.K2JVMCompiler.doExecute(K2JVMCompiler.kt:196)
at org.jetbrains.kotlin.cli.jvm.K2JVMCompiler.doExecute(K2JVMCompiler.kt:63)
at org.jetbrains.kotlin.cli.common.CLICompiler.execImpl(CLICompiler.java:109)
at org.jetbrains.kotlin.cli.common.CLICompiler.execImpl(CLICompiler.java:53)
at org.jetbrains.kotlin.cli.common.CLITool.exec(CLITool.kt:92)
at org.jetbrains.kotlin.cli.common.CLITool.exec(CLITool.kt:70)
at org.jetbrains.kotlin.cli.common.CLITool.exec(CLITool.kt:36)
at org.jetbrains.kotlin.cli.common.CLITool$Companion.doMainNoExit(CLITool.kt:157)
at org.jetbrains.kotlin.cli.common.CLITool$Companion.doMain(CLITool.kt:148)
at org.jetbrains.kotlin.cli.jvm.K2JVMCompiler$Companion.main(K2JVMCompiler.kt:343)
at org.jetbrains.kotlin.cli.jvm.K2JVMCompiler.main(K2JVMCompiler.kt)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.base/java.lang.reflect.Method.invoke(Unknown Source)
at org.jetbrains.kotlin.preloading.Preloader.run(Preloader.java:81)
at org.jetbrains.kotlin.preloading.Preloader.main(Preloader.java:43)
What Java version do you use? Try java -version to see that. You may probably need Java 11 (or 8). Also, I see fun fun in the code snippet, probably a typoe
I found that related issue for that
https://youtrack.jetbrains.com/issue/KT-21303
Try using the fresh version of Kotlin compiler, e.g. 1.3.21
You can try updating your kotlin version. I had the same issue with the error below using Intellij. I updated Kotlin plugin from a version 1.2. something to 1.3.11 and the hello world code was able to run.
Error:Kotlin: [Internal Error] java.lang.ArrayIndexOutOfBoundsException: 10883
at org.jetbrains.org.objectweb.asm.ClassReader.readUnsignedShort
(ClassReader.java:2464)
at org.jetbrains.org.objectweb.asm.ClassReader.readUTF8(ClassReader.java:2525)
at org.jetbrains.org.objectweb.asm.ClassReader.readModule(ClassReader.java:761)
.......