Acknowledged
over 1 year ago

excludeAnnotations stopped working as documented in new SDKs

An excludeAnnotations clause started to return errors for the pattern in the official doc that used to work for years. 

function setLayoutVars(){
	if(dataLoading){
		scheduleDataLoading(activity);
		...
	}
	...
}

(:data)
function scheduleDataLoading(activity){	
	...
}

monkey.jungle excludes that function for some devices:

fenix3.excludeAnnotations = data

Those devices never call that function thanks to the dataLoading var.

It worked perfectly for years.

Yet with the latest SDK version (I skipped multiple versions), the raises an error:

> monkeyc -r -o late.prg -y [path2devkey] -f ../monkey.jungle -d fenix3 --typecheck 0

ERROR: fenix3: ./source/lateView.mlc:x,y: Undefined symbol ':scheduleDataLoading' detected

The documentation guides to such usage with conditinal launching excluded symbols even in an example of the excludeAnnotations with conditional launching of (:newer)newHotnessAlgorithm(){} vs. (:older)oldAndBustedAlgorithm(){} annotations

https://developer.garmin.com/connect-iq/reference-guides/jungle-reference/


What's the problem?

Is there any new compiler setting for that? 

Parents
  • I was talking with the engineering team about this, and we plan to update the documentation to avoid confusion about this, but one suggestion came up: you should be able to use the --Eno-invalid-symbol compiler option to turn that error into a warning without using the solution provided by FlowState.

Comment
  • I was talking with the engineering team about this, and we plan to update the documentation to avoid confusion about this, but one suggestion came up: you should be able to use the --Eno-invalid-symbol compiler option to turn that error into a warning without using the solution provided by FlowState.

Children
No Data