String IndexOutOfBounds Exception while using extensions in companion app

Yes, as I said.

On Android < 14 it fails if there are more than one extension.

In reality isn't right I was using companion v2.73 on my Samsung the only problem is using extension, fails with the classic error "Unable to load extensions.java.lang.StringIndexOutOfBoundsException:
String index out of range: -1" but with v2.73d1u from @jis its all fixed and works perfectly.

We are no longer testing companion v2.73d1u. The companion in the play store has been updated and we are now testing the currently released companion v2.73a. If you want to be helpful, test with multiple extensions, not just one, and in the feedback provide more details about what phone, what Android. The information that everything works is not helpful, because it works for me too, but not on every phone.

2 Likes

Ok i missed this one, going ti test it right now!!!

Just test it using 10 different extension, for all its working to me, even using some of them together, all the components seems ok.
Android version: 11
Model phone: Samsung A30s

One reason more to publish only a basic companion app on Google Play...

And I think, we can expect more restrictions from Google in the future. .

Please see also this thread Map It: Displaying Locations on a Google Map - #13 by Richard_Boehm

That user is using several extensions...

I use aicompanion2.73a on GooglePixel8Pro with Android15

Taifun

This is a good idea. We would get rid of many problems.

Hello Taifun...I have a special question for you. If I have different projects e.g. When I import "Speech2" or "Player" into App Inventor 2, I get a runtime error in most of your projects. What could be the reason for this. Thanks in advance for your help. Richard




Did you update your companion app?
Which device and Android version are you using for your tests?

Taifun

Thanks for Information.
I use aicompanion2.73a on GooglePixel8Pro with Android15

Ok i will test different Projects

Greetings Richard

Please add one of your example projects here, so @jis can do some more tests

--

To avoid all this issues with the companion app I would like to repeat my suggestion from here String IndexOutOfBounds Exception while using extensions in companion app - #214 by Taifun

What about offering a basic Google Play version, without extension functionality

And the more advanced users, who like to test extensions or the texting component (or probably other restrictions in the future) can download an u version directly from MIT

Taifun

There's a few reasons I disagree with removing the extensions functionality from the Play Store version.

  1. Some devices do not allow sideloading (e.g., Chromebooks), at least not without a ton of headaches. This would immediately restrict people with these devices from using many of our AI related tutorials as those features are all currently published as extensions.
  2. The read-only requirement is not a requirement of Google Play Store, it's a requirement of Android 14 itself and enforced by the operating system. The sideloaded version with extension functionality would still be subject to the rules.
  3. Once someone has sideloaded the companion, they will need to manually update it from there on out if they want newer features of App Inventor since it will no longer be automatically updated via Google Play. This will cause increased feature drift and make it harder on everyone providing support.

ad 1) how many percent of our users use devices, which do not offer sideloading?

ad 2) Niotron and Kodular do not have these issues with their companion app... both offer their companion app only sideloaded

ad 3) a check for new updates could be added into the companion app... my sideloaded Telegram app does this successfully...

Taifun

1 Like

The unscientific answer to this is, "a lot." Chromebooks are standard devices in schools.

And here we can return to @Anke's question, why Nitron doesn't have to do anything with companion, and extensions work fine there on every version of Android. Is this a requirement of Android14, or maybe Samsung's invention? I didn't find any mention of it in the list of new features in Android 14. Using Android 14 before all these fixes, I also had no problems with extensions... probably Samsung users had them.

Is their companion app targeting SDK 34? If not, that's your answer.

Yes, as I already said.

I will point out that it did work on most devices. However, some Samsung devices did not work. It's entirely possible that the original patch worked on all of your devices (and therefore if Niotron is just lifting our changes for them too). Frankly, I don't have the time to reverse engineer their proprietary changes to our open source platform. Maybe one of them would be interested in contributing a patch. That said, I have another change in the works that should resolve the issue.

<?xml version="1.0" encoding="utf-8" standalone="no"?><manifest xmlns:android="http://schemas.android.com/apk/res/android" android:compileSdkVersion="34" android:compileSdkVersionCodename="14" package="com.niotron.companion" platformBuildVersionCode="34" platformBuildVersionName="14">

I thought so, Samsung programmers are working diligently to give app developers more work.

1 Like