KAB 12.5 predictive text no longer working after KAB update

After 4 years of usage, new would-be-users complained the KAB produced app will not install, due to their android version being too new … that is of course good user feedback and means all apps need to be renewed regularly. So I installed the latest KAB, and compiled the app. Upon installation, it does produce the black bar that should hold the predictive text, but no text is showing.
So in short only KAB was renewed. (and with it all the Java of course). Any suggestions?
Thanks in advance for your tips.
Bart

The App builders use a modified copy of a version of KM 17 from about a year ago. Keyman must have made a change to the data structure that runs the predictive model.

I was hoping to get some other keyboard-related code integrated (and wait for Keyman 19 to become the stable version) before focusing on upgrading Keyman in the app builders… But maybe this is more urgent now.

What do you mean by this? Are you trying to make a distinction between App Builders and their Keyman code? It’s my understanding that all App builders (Scripture, Reading, Keyboard, Dictionary) released at the same time use the same copy of the Keyman Code, so I’d be surprised to see a difference between KAB and another AB.

We haven’t made any notable changes there, and even when we do, we aim to make sure older models and such still run on new versions.

We have seen occasional error reports within our app that could indicate issues with loading the predictive-text data files - I just noticed a few earlier today. Those reports don’t give me enough to go by at present on why they didn’t load… just that they didn’t.

Is this something that happens regularly for you, or only on rare occasion?

Indeed Matthew. SAB and DAB were also renewed, thus when I renewed KAB, there was no need to download a new SDK. These are now:

So, the exact same files that keyman developer (14?) produced in 2020, were used to compile a new apk with KAB 12.5

What would be your advice as the best combination of software to produce a keyboard app with working predictive text ? KAB 12.5 or an earlier version ? The latest Keyman Developer 18? Or one of the earlier versions as well? I am not aware of any predictive model versions, and if for instance my 2020 created model is now considered incompatible …

Thanks in advance for your advice Matthew.

The potentially related issue I’ve been able to notice is now documented here: bug(android): Error occurred when attempting to load dictionary · Issue #13862 · keymanapp/keyman · GitHub

There’s no guarantee it’s the same thing you’re experiencing, but it is something that disables predictive text when it triggers within Keyman.

I am not aware of any predictive model versions, and if for instance my 2020 created model is now considered incompatible …

There isn’t really any model versioning yet; if your model somehow is considered incompatible, please let me know, as that shouldn’t currently be possible.

Several caveats:

  1. The App builders intentionally disable sentry, so @joshua_horton shouldn’t get a direct bug report. You’d have to get the corresponding report from vanilla Keyman.
  2. The copy of Keyman in the app builders is a manual update (it seems to include some old code, and have other bits disabled). There seem to be LOTS of changes in KeymanManager related to language models, so a good test would be to test the same keyboard/language model combo in Keyman to see if it works.
  3. Only a portion of App Builder developers embed Keyman, and I suspect only a portion of those have language models, so this may not be a well-traveled path.

I believe the project file structure has changed considerably on the Keyman side since KM14.

Yes, I would suggest recompiling the keyboard and model with Keyman 17 (just to be safe since that’s the version they have) and testing them in Keyman for Android. Report that result. Then remove the keyboard and model from the App Builder and retest.
If neither work, it’s either Keyman or something in your model and Joshua can probably help. If Keyman works but not KAB, I’d suspect the modified/outdated code in the builder.

We are very careful to maintain backward compatibility with both keyboards and lexical models in Keyman. The vast majority of keyboards from 2001 onward and lexical models from 2018 onward should never need to be rebuilt.

Basically the only exceptions are:

So, if you encounter a situation where rebuilding a lexical model (or keyboard) with a newer version of the compiler results in change in behaviour, we’d like to hear about it.

@bart_eenkhoorn1
Can you provide details on the keyboard and the lexical model? Are these in the Keyman repositories (keyboards and lexical-models)? Or are they ones that you have developed locally?

The link between keyboard and lexical model is the BCP 47 language tag. (Is that “jow”?) IIUC the tags need to match exactly (“jow” and “jow-Latn”, though equivalent, might not match, for example). Does the keyboard support multiple languages? If so, is the right one selected?

Thanks!

Hello David,
Thank you for writing. As I said, all files were compiled in 2020 with KD 13, and I have made no changes.
The keyboard language code is dux.

The ts model file has dux-latn in the filename, but inside the file there does not seem to be a place to edit. But the kps file has:

The keyboard kps has this :

Hi @bart_eenkhoorn1,

Sorry I remembered your language project incorrectly!

Would you be able to zip up your keyboard project and also the lexical project and post the files here? You can exclude the ‘build’ folder and its contents in each case.

Thanks!