BUILD: ERROR: Cannot invoke "java.util.Map.get(Object)" because "strings" is null

Hey everyone!

I set up my environment the day before yesterday, everything was running smoothly (I'm developing my first watch face ever, ran into some obstacles but it was finally looking good), when suddenly, after deleting some fonts from I wasn't using from my project directly from eclipse (instead of deleting them in the folder and refreshing), eclipse stopped compiling with this error message:

BUILD: C:\Users\catar\.p2\pool\plugins\org.eclipse.justj.openjdk.hotspot.jre.full.win32.x86_64_16.0.2.v20210721-1149\jre\bin\java -Dfile.encoding=UTF-8 -Dapple.awt.UIElement=true -jar C:\Users\catar\AppData\Roaming\Garmin\ConnectIQ\Sdks\connectiq-sdk-win-4.0.5-2021-08-09-29788b0dc\bin\monkeybrains.jar -o "F:\Connect ID programming\GalaxyWatchFace\bin\GalaxyWatchFace.prg" -w -y "F:\Connect ID programming\developer_key" -d fenix6s_sim -c 3.2.0 -f "F:\Connect ID programming\GalaxyWatchFace\monkey.jungle" 
BUILD: ERROR: null
BUILD: ERROR: Cannot invoke "java.util.Map.get(Object)" because "strings" is null
BUILD: WARNING: The launcher icon (30x30) isn't compatible with the specified launcher icon size of the device 'fenix6s' (40x40). Image will be scaled to the target size.
BUILD: Complete
Aborting launch due to failed build.


There's no more information, and this happens even when I create a new simple project from scratch. I uninstalled and reinstalled everything on SDK manager and eclipse, and set up everything from scratch, and I'm still getting the same error.
I can't find anything on this online. I found this post https://forums.garmin.com/developer/connect-iq/f/discussion/264486/error-cannot-invoke-java-lang-comparable-compareto-object-because-a-runhi-is-null and I thought maybe it was something similar, but I have every wearable installed, and I'm trying to compile for the fenix 6s only.
  • What fonts did you delete?  Your own custom fonts or standard ones? If custom, did you also remove them from the XML and make sure you aren't still trying to load them in your app?

  • Thank you for answering so fast! I deleted my own custom fonts. To be honest, I don't even know where I could delete the standard ones. I also removed them from the XML and I've spent the last 2 hours trying to find any line of code that may be using them, but I didn't find any.

  • Ok, I may have found something, I was trying to uninstall the SDK manager (previously I only uninstalled the SDK and devices), and although I'm the admin for the object, it says I don't have permissions to use/change/delete the shell.exe file in C:\Users\Me\AppData\Roaming\Garmin\ConnectIQ\Sdks\connectiq-sdk-win-4.0.5-2021-08-09-29788b0dc\bin

    When I try to run it as admin

  • Tried to takeown and it works for everything except shell.exe I'm the only admin account for this computer

  • is shell.exe currently running?

  • I couldn't find it in the task manager, however, after running takeown, I restarted and it was gone. I'm currently reinstalling everything one more time, fingers crossed!

  • After setting everything up one more time, I get the same error Disappointed

  • What if you try a different project.  In Eclipse, do a file>new>ciq proect>watch face, you can create a simple one.

  • I replaced all my custom fonts for default fonts and the issue was fixed, I'm not sure why these fonts were working previously and now are not.

    My resources.xml file had this code:

    <fonts>

    <font id="CaviarDreams_14"
    filename="fonts/CaviarDreams_14.fnt"
    antialias="true"
    />

    <font id="CaviarDreams_70"
    filename="fonts/CaviarDreams_70.fnt"
    antialias="true"
    />

    </fonts>

      

      

    And my layout:

    <layout id="WatchFace">

    <bitmap id="GalaxyBG" filename="galaxy_bg.png" />

    <label id="TimeDisplay"
    x="center"
    y="center"
    font="@Fonts.CaviarDreams_70"
    justification="Gfx.TEXT_JUSTIFY_CENTER"
    color="Gfx.COLOR_WHITE"
    />

    <label id="BatteryDisplay"
    text="00%"
    x="center"
    y="5%"
    font="@Fonts.CaviarDreams_14"
    justification="Gfx.TEXT_JUSTIFY_CENTER"
    color="Gfx.COLOR_WHITE"
    />

    <label id="MoveBarDisplay"
    text="MOVE"
    x="center"
    y="20%"
    font="@Fonts.CaviarDreams_14"
    justification="Gfx.TEXT_JUSTIFY_CENTER"
    color="Gfx.COLOR_WHITE"
    />

    <label id="DateDisplay"
    text="WED 00/00/00"
    x="center"
    y="65%"
    font="@Fonts.CaviarDreams_14"
    justification="Gfx.TEXT_JUSTIFY_CENTER"
    color="Gfx.COLOR_WHITE"
    />

    <label id="NotificationCountDisplay"
    text="+00"
    x="center"
    y="30%"
    font="@Fonts.CaviarDreams_14"
    justification="Gfx.TEXT_JUSTIFY_CENTER"
    color="Gfx.COLOR_WHITE"
    />

    <label id="StepCountDisplay"
    text="00000"
    x="15%"
    y="25%"
    font="@Fonts.CaviarDreams_14"
    justification="Gfx.TEXT_JUSTIFY_CENTER"
    color="Gfx.COLOR_WHITE"
    />
    <label id="FloorsDisplay"
    text="00"
    x="85%"
    y="25%"
    font="@Fonts.CaviarDreams_14"
    justification="Gfx.TEXT_JUSTIFY_CENTER"
    color="Gfx.COLOR_WHITE"
    />

    <label id="WeatherDisplay"
    text="00"
    x="17%"
    y="75%"
    font="@Fonts.CaviarDreams_14"
    justification="Gfx.TEXT_JUSTIFY_CENTER"
    color="Gfx.COLOR_WHITE"
    />

    <label id="CaloriesDisplay"
    text="00000"
    x="82%"
    y="75%"
    font="@Fonts.CaviarDreams_14"
    justification="Gfx.TEXT_JUSTIFY_CENTER"
    color="Gfx.COLOR_WHITE"
    />

    <label id="HeartrateDisplay"
    text="000"
    x="center"
    y="90%"
    font="@Fonts.CaviarDreams_14"
    justification="Gfx.TEXT_JUSTIFY_CENTER"
    color="Gfx.COLOR_WHITE"
    />

    </layout>

  • Fixed it!

    It was really dumb: I had generated a new file for one of the fonts using bmfont, used all the correct settings, but forgot to select only latin characters.