.js and .kvk files do not exist error

I’m wanting to install my keyboard via the KPS file, but the button is grayed out. I’m assuming I need to compile my keyboard first, but I’m getting the error that the .js and .kvk files do not exist. Any ideas what is wrong?

Within the .kmn you should compile. That would hopefully put the .js and kvk into the build folder. Then in the .kps you should have the .js and kvk included that point to that same build folder. It shouldn’t give you an error if you have the pointers correct and the compiled files are in that place.

Unfortunately that didn’t work. Compiling within the KMN file seems to work ok, but I still get the same error when compiling from the KPS file. After looking in the build folder, those files aren’t in there. The only file in there is the KMX file.

I’ll give a few pointers to review and then probably cannot help you more.

You should have a folder with the keyboard id. I’ll use test_id. Within that folder you should have this file structure:

test_id\test_id.kpj
test_id\source\test_id.kps
test_id\source\test_id.kmn
test_id\source\test_id.kvks
test_id\source\test_id.keyman-touch-layout

If you are missing any of those files (like .kvks or .keyman-touch-layout) you won’t get the compiled files.

Additionally, within Keyman Developer, if you go to Project / Project Settings / Output path the output path should be $PROJECTPATH\build

Then, go to the .kmn and Save and Compile. Look at the messages down below. It should tell you where it saved the files and hopefully it will be in test_id\build.

Then, go to the .kps file. In the Files tab you probably have a test_id.js file. If so, select it and then look off to the right and it should show you the path \test_id\source\..\build\test_id.js. If that is not the path, then you should REMOVE test_id.js and then readd it in from the build folder.

Do the same thing for the .kvk file to make sure it is referencing the correct file.

Go to the Build tab and Compile. If it compiles, then the .kmp will also be in your build folder and you can use that to install the keyboard and/or send it to someone else to use.

I do have those files in the “source” folder, so that is good news.

The output path is the same as you indicated, so good news there, too.

Saving and compiling from the KMN file does say it put it into the “build” folder. Also good news.

In the KPS file, the KMX, KVK, and JS files ALL point to the source..\build folder, so it looks like they are pointing to where they need to.

When I try to “Compile Package” in the KPS file, I get the error that those files are missing. If I browse to the “build” folder, the only file in there is the KMX file.

While looking at these files, I noticed that the program gives me the option to edit them. When I try to edit the JS file, it is blank. When I try to edit the KVK file, the design view is blank, and the code view only shows this:

<?xml version="1.0" encoding="utf-8"?>
<visualkeyboard>
  <header>
    <version>10.0</version>
    <kbdname></kbdname>
    <flags/>
  </header>
</visualkeyboard>

Is this different than the design and code views from the KMN file? Do they need to have the exact same info? Did the design/code work I did in the KMN file need to be done in the KPS file?

If you could zip up your files (the whole “test_id” folder) and put them somewhere I can access them send me a dm with the link I’ll take a look.

  • If .js file is missing, it indicates that the store(&targets) line is missing, or is set to only desktop platforms.
  • If .kvk file is missing, it usually means that the store(&visualkeyboard) line is missing.

See the links above for more details. :slight_smile:

Marc,

I read up on those pages. I also sent Lorna a link per her request. Hopefully between all of this we’ll find a solution. Thank you :).

I’ve sent @Sky some feedback, but a quick summary is:

  • Several header statements were missing.
  • There were two .kmn files, one was in the root (the one with the rules) and a target statement for “windows” only, and one in source (where it should be), and a target statement of “any” but without rules.

Between all those issues, the build was getting confused. I’ve sent back the files that are mostly fixed up. The touch layout still needs work to access the accented keys.

This conversation has been resolved.

This topic was automatically closed after 14 days. New replies are no longer allowed.