Hello everyone,
ai2-test.appinventor.mit.edu has been updated for our next release. It contains the following changes from nb205a:
Introduce a new internal model for ListView data items
Fix an issue related to ListView filtering on Android and iOS
Fix an issue related to ListView selection item in Android
Implement SDK 36 support for Google Play compatibility
Please let us know of any issues, especially those that appear on Android devices running Android 16+.
Cheers,
Evan W. Patton, Ph.D.
Lead Software Engineer, MIT App Inventor
4 Likes
ABG
August 6, 2026, 11:19pm
2
The release notes and version pop up look a few months stale.
1 Like
jis
August 7, 2026, 1:26am
3
Oops. My bad. The splash screen and release notes have been updated.
Peter
August 7, 2026, 2:19am
4
On the Splash screen it says you have to look at Help->Companion Information for the latest companion. That is only with the Classic theme. With the Neo theme it is Connect->Companion Information.
JEWEL
August 7, 2026, 1:26pm
5
It would be great if these PRs could be considered for inclusion in the upcoming nb206 release:
master ← jewelshkjony:fix/aar-font-resource-merge
opened 05:20AM - 06 Jun 26 UTC
**What does this PR accomplish?**
When an AAR library contains font resources u… nder `res/font/` (e.g. `res/font/myfont.ttf`), the build fails with:
````
[Fatal Error] :1:1: Content is not allowed in prolog.
[MergeResources] ERROR: Could not merge resources
````
This happens because the `ResourceMerger` attempts to parse binary `.ttf`/`.otf` files as XML, causing a `MergingException`.
This PR fixes the issue by introducing `moveFontsToOutputDir()` in [AARLibraries.java](https://github.com/jewelshkjony/appinventor-sources/blob/923365e5b2079560a256070bc771ec3309611ba7/appinventor/buildserver/src/com/google/appinventor/buildserver/util/AARLibraries.java#L219), which walks the AAR's `res/font/` directory using `Files.walkFileTree()` and moves all font files (including subdirectories) directly into the merged resource output directory before `ResourceMerger` runs.
This ensures:
- `ResourceMerger` never encounters font files.
- `aapt` picks up the fonts from the merged output and packages them into the APK/AAB correctly.
- Resource IDs (e.g. `R.font.myfont`) are correctly assigned and linked in `R.class`.
*Testing Guidelines*
1. Add an AAR that contains font (`res/font/myfont.ttf`) as a dependency to an App Inventor extension or component.
2. Build the application as APK/AAB.
3. Verify the build completes without `MergingException`.
4. Decompile the resulting APK and confirm:
- `res/font/` contains the expected font files.
- The expected package's `R.class` contains a `font` inner class with correct
`aapt`-assigned resource IDs (e.g. `0x7f04xxxx`).
5. Run the app and verify font resources load correctly at runtime without
`Resources.NotFoundException`.
Testing Results #.
1. Font files are packaged correctly:
<img width="457" height="274" alt="image" src="https://github.com/user-attachments/assets/6e6b1335-6352-47e9-bdfa-dba1406524bb" />
<img width="456" height="275" alt="image" src="https://github.com/user-attachments/assets/4aaadbef-e174-4134-be88-63fecc30ef51" />
2. IDs linked correctly to R.class
<img width="966" height="193" alt="image" src="https://github.com/user-attachments/assets/1557ea5f-cc59-47b0-9819-cf6ead15d9fa" />
<img width="971" height="164" alt="image" src="https://github.com/user-attachments/assets/e2b64e67-c25b-49ed-9608-efd0f1d90242" />
Fixes # .
#3610
Resolves # .
**Context for the changes**
If this PR changes anything related to the companion make sure you have used the `ucr` branch. For all other changes use `master` or provide context for having used a different branch.
See a summary of git branches in the docs: [App Inventor Developer Overview](https://docs.google.com/document/u/1/d/1hIvAtbNx-eiIJcTA2LLPQOawctiGIpnnt0AvfgnKBok/pub#h.g4ai8y7wpbh6)
If your code changes how something works on the device (i.e., it affects the companion):
- [x] I have made no changes that affect the companion
- [ ] I branched from `ucr`
- [ ] My pull request has `ucr` as the base
Further, if you've changed the blocks language or another user-facing designer/blocks API (added a SimpleProperty, etc.):
- [ ] I have updated the corresponding version number in appinventor/components/src/.../common/YaVersion.java
- [ ] I have updated the corresponding upgrader in appinventor/appengine/src/.../client/youngandroid/YoungAndroidFormUpgrader.java (components only)
- [ ] I have updated the corresponding entries in appinventor/blocklyeditor/src/versioning.js
For all other changes:
- [ ] I have made no changes that affect the master branch
- [x] I branched from `master`
- [x] My pull request has `master` as the base
**General items:**
- [ ] I have updated the relevant documentation files under docs/
- [x] My code follows the:
- [x] [Google Java style guide](https://google.github.io/styleguide/javaguide.html) (for .java files)
- [ ] [Google JavaScript style guide](https://google.github.io/styleguide/jsguide.html) (for .js files)
- [ ] [Swift style guide](https://google.github.io/swift/) (for .swift files)
- [x] Indentation has been doubled checked
- [x] This PR does not include unnecessary changes such as formatting or white space
- [x] `ant tests` passes on my machine
master ← jewelshkjony:fix/jni-merging-from-aar
opened 05:26PM - 03 Jun 26 UTC
**What does this PR accomplish?**
This PR fixes an issue where native librari… es (`.so` files) contained within AAR dependencies were not being properly merged and included in the final APK during the project compilation process. This ensures that extensions or components relying on native binary libraries via AARs function correctly at runtime on the device.
*Testing Guidelines*
1. Import an extension that relies on an AAR containing native (`.so`) libraries.
2. Use the extension in project.
3. Compile the project as APK and also as AAB.
4. Verify that the compilation completes successfully without native library merging errors.
5. Extract the resulting AAB/APK or install it on a device/emulator to ensure the native libraries are present in the `lib/` directory and function as intended.
Test Results # .
<img width="490" height="243" alt="image" src="https://github.com/user-attachments/assets/804acef5-c929-479c-90fe-f69bc3177562" />
<img width="585" height="249" alt="image" src="https://github.com/user-attachments/assets/711dbde2-7f73-43a9-b2e1-481073420c3c" />
Fixes # .
Resolves # .
**Context for the changes**
If this PR changes anything related to the companion make sure you have used the `ucr` branch. For all other changes use `master` or provide context for having used a different branch.
See a summary of git branches in the docs: [App Inventor Developer Overview](https://docs.google.com/document/u/1/d/1hIvAtbNx-eiIJcTA2LLPQOawctiGIpnnt0AvfgnKBok/pub#h.g4ai8y7wpbh6)
If your code changes how something works on the device (i.e., it affects the companion):
- [x] I have made no changes that affect the companion
- [ ] I branched from `ucr`
- [ ] My pull request has `ucr` as the base
Further, if you've changed the blocks language or another user-facing designer/blocks API (added a SimpleProperty, etc.):
- [ ] I have updated the corresponding version number in appinventor/components/src/.../common/YaVersion.java
- [ ] I have updated the corresponding upgrader in appinventor/appengine/src/.../client/youngandroid/YoungAndroidFormUpgrader.java (components only)
- [ ] I have updated the corresponding entries in appinventor/blocklyeditor/src/versioning.js
For all other changes:
- [ ] I have made no changes that affect the master branch
- [x] I branched from `master`
- [x] My pull request has `master` as the base
**General items:**
- [ ] I have updated the relevant documentation files under docs/
- [x] My code follows the:
- [x] [Google Java style guide](https://google.github.io/styleguide/javaguide.html) (for .java files)
- [ ] [Google JavaScript style guide](https://google.github.io/styleguide/jsguide.html) (for .js files)
- [ ] [Swift style guide](https://google.github.io/swift/) (for .swift files)
- [x] Indentation has been doubled checked
- [x] This PR does not include unnecessary changes such as formatting or white space
- [x] `ant tests` passes on my machine