Export Wizard with barrel fails

Former Member
Former Member
Hi there,

I was playing around with barrels and 'outsourced' my math functions into barrel since I use them in different places. Everything works fine in the simulator (using eclipse) and I cal also export for a device with no issues. However, when I use the export wizard it throws an error I don't understand:

BUILD: ERROR: barrels.jungle:5: 'ExtendedMath' is not a valid barrel specified in the manifest file.
BUILD: ERROR: Errors were found during jungle file processing.
BUILD: com.garmin.monkeybrains.Packager$PackageException: [200] Errors were found during jungle file processing.
BUILD: at com.garmin.monkeybrains.Monkeybrains.packageApplication(Monkeybrains.java:815)


my manifest file has an entry
<iq:barrels>
<iq:depends name="ExtendedMath" version="0.0.1"/>
</iq:barrels>


and the barrels.jungle file looks like
# Do not hand edit this file. To make changes right click
# on the project and select "Configure Monkey Barrels".

ExtendedMath = "deployFenixHR\ExtendedMath-0.0.1.barrel"
base.ExtendedMath.annotations = Differential
base.barrelPath = $(base.barrelPath);$(ExtendedMath)


Can anyone give me a hint what I might do wrong here?
Thanks
  • Former Member
    Former Member over 7 years ago
    Does no one have any idea? Could this be a bug in the eclipse plugin? I now tried to update to SDK 2.4.2 and also updated the Eclipse plugin but the error remains.
    The Monkey Barrel Management section in [HTML]developer.garmin.com/.../HTML] does look a bit different but all in all it seems fine. Major difference is that there is no version number but the eclipse plugin forces me to set one and uses it in the barrel name.

    It's a bit frustrating since I want to check/debug my custom FIT file logs but without being able to create an *.iq file I can't really use monkey graph nor can I upload a beta version to the store...
  • I've built and exported apps that use barrels, but just with the barrels.jungle created when you use "configure barrels" for the project. (see the comment in barrels.jungle about not hand-editing it)

    With the export wizard, it's really just compiling for all targets and putting the results in the .iq file.

    When you just use "run" in eclipse, are you getting this error on all targets, or just some? (barrels aren't supported on all possible targets)
  • Former Member
    Former Member over 7 years ago
    Hi Jim, thank you for your reply.

    The barrels.jungle I posted is created by eclipse with 'Configure Monkey Barrels' and after getting the error I just tried to hand edit and see if I can make it work (with no luck) but now it is back to the automatically created file.
    I also only have fenix5 selected as build target in my manifest file to exclude any issues with build targets.

    When I hit 'run' it all compiles fine and I can even side load the app on my fenix5 with the 'Build for Device Wizard...' (and it runs fine on my F5). That's really why I have no clue what's going wrong in the Export Wizard and thus I start to think it's a bug in the eclipse plugin...
  • what targets other than the f5 do you have set for your project?
  • I've not used jungle files much, but my understanding is for things like annotations used in the barrel, you want them in the jungle file for the barrel, and not the one in your main app. Could it be something like that?
  • Former Member
    Former Member over 7 years ago
    Hi Jim,

    the F5 is the only target specified for now to avoid any issues related with different targets. So there is no other targets. That's how it looks:
    <!-- This is a generated file. It is highly recommended that you DO NOT edit this file. --><iq:manifest xmlns:iq="www.garmin.com/.../connectiq" version="3">
    <iq:application entry="MyTestApp" id="<removed, not sure if i should share the ID>" launcherIcon="@Drawables.LauncherIcon" minSdkVersion="2.4.0" name="@Strings.AppName" type="watch-app">
    <iq:products>
    <iq:product id="fenix5"/>
    </iq:products>
    <iq:permissions>
    <iq:uses-permission id="Communications"/>
    <iq:uses-permission id="Fit"/>
    <iq:uses-permission id="FitContributor"/>
    <iq:uses-permission id="PersistedContent"/>
    <iq:uses-permission id="PersistedLocations"/>
    <iq:uses-permission id="Positioning"/>
    <iq:uses-permission id="Sensor"/>
    <iq:uses-permission id="SensorHistory"/>
    <iq:uses-permission id="SensorLogging"/>
    <iq:uses-permission id="UserProfile"/>
    </iq:permissions>
    <iq:languages>
    <iq:language>deu</iq:language>
    <iq:language>eng</iq:language>
    </iq:languages>
    <iq:barrels>
    <iq:depends name="ExtendedMath" version="0.0.2"/>
    </iq:barrels>
    </iq:application>
    </iq:manifest>


    The app jungle file only contains
    project.manifest = manifest.xml


    and the annotation is defined in the barrels.jungle file. I will try to reproduce the error in a test application tomorrow and see if it reproduces to nail it further down.


  • Former Member
    Former Member over 7 years ago
    I created a test application which produces the error:
    I added the whole project folder. It is just an app created with the CIQ Project Wizard and then added the barrel and and calling a test function on the update routine of the view.
    It runs fine in the simulator but when you use the Export Wizard the following error is shown:

    BUILD: ERROR: barrels.jungle:5: 'ExtendedMath' is not a valid barrel specified in the manifest file.
    BUILD: ERROR: Errors were found during jungle file processing.
    BUILD: com.garmin.monkeybrains.Packager$PackageException: [200] Errors were found during jungle file processing.
    BUILD: at com.garmin.monkeybrains.Monkeybrains.packageApplication(Monkeybrains.java:815)
    BUILD: at com.garmin.monkeybrains.Monkeybrains.run(Monkeybrains.java:2418)
    BUILD: at com.garmin.monkeybrains.Monkeybrains.simpleMain(Monkeybrains.java:270)
    BUILD: at com.garmin.monkeybrains.Monkeybrains.simpleMain(Monkeybrains.java:253)
    BUILD: at com.garmin.monkeybrains.Monkeybrains.main(Monkeybrains.java:299)
    BUILD: usage: monkeyc [-a <arg>] [-b] [-c <arg>] [-d <arg>] [-e] [-f <arg>] [-g] [-h
    BUILD: <arg>] [--hideApi <arg>] [-i <arg>] [-k] [-m <arg>] [-n <arg>] [-o <arg>]
    BUILD: [-p <arg>] [-r] [-s <arg>] [-t] [-u <arg>] [-v] [-w] [-x <arg>] [-y
    BUILD: <arg>] [-z <arg>]
    BUILD: -a,--apidb <arg> API import file
    BUILD: -b,--buildapi Build API output files
    BUILD: -c,--configs-dir <arg> Configuration directory for each device
    BUILD: -d,--device <arg> Target device
    BUILD: -e,--package-app Create an application package.
    BUILD: -f,--jungles <arg> Jungle files
    BUILD: -g,--debug Print debug output
    BUILD: -h,--excludes-map-file <arg>Mapping file of exclusions
    BUILD: --hideApi <arg> Hide API annotations
    BUILD: -i,--import-dbg <arg> Import api.debug.xml
    BUILD: -k,--write-db Write out the api.db file
    BUILD: -m,--manifest <arg> Manifest file
    BUILD: -n,--api-version <arg> The new API version
    BUILD: -o,--output <arg> Output file to create
    BUILD: -p,--project-info <arg> projectInfo.xml file to use when compiling
    BUILD: -r,--release Strip debug information
    BUILD: -s,--sdk-version <arg> SDK version to target
    BUILD: -t,--unit-test Enables compilation of unit tests
    BUILD: -u,--devices <arg> devices.xml file to use when compiling
    BUILD: -v,--version Prints the compiler version
    BUILD: -w,--warn Show compiler warnings
    BUILD: -x,--excludes <arg> Add annotations to the exclude list
    BUILD: -y,--private-key <arg> Private key to sign builds with
    BUILD: -z,--rez <arg> Resource file
    BUILD: Complete
    Package Manager: Problem building package. See console for details. (200)


    Can anyone reproduce this behaviour? I start to think that something is wrong with my barrel but why would it then run in the simulator?
  • I have the same problem with a watch face project. It works fine when I compile and test in the simulator however when I try to package it for export I get exactly the same error.
  • I'm not sure what's going on, but I have been able to build .iq files with barrels, and have one watchface in the store that uses 4 different ones. Simple Bar, so I know it can be done.

    The first barrel I did was a single function that only did a Sys.println("I'm here"); and used one of the CIQ templates apps in eclipse to drive it. Maybe start with something that simple and build it up to the point that building a .iq fails?

    It might be a way to narrow down when the error occurs.
  • Jim,

    I removed the 'annotations' line in the barrels.jungle file for my project and the build package worked. I will try looking at a few more simple samples to see if I can work out why since the annotations line looked fine according to documentation.
    Thanks