You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Processing 4.3 produces bogus/misleading console error messages of the format library.getName() + " does not run on this architecture: " + variant when running sketches that load a library which bundles native libraries for at least one architecture, but none for the architecture/OS on which the sketch is run. The error message is triggered by the following heuristic:
// if no per-platform exports, then nothing to worry about
returnfalse;
}
returngetApplicationExportList(variant) == null;
}
which is a bit too aggressive: the upcoming release of the Processing Sound library will bundle native dlls for Windows to improve audio device support, but not for other platforms (linux, mac, arm, android) which it nevertheless supports out of the box. Based on the current behaviour, users of any platform other than Windows will be shown a disconcerting (and wrong) error message any time they run a sketch.
Expected behaviour
There should be a way for libraries to selectively suppress Processing's 'does not run on this architecture' error message, for example by providing an optional mechanism that allows libraries to specify explicitly which OSs/platforms they support (maybe something for library.properties?).
I suppose the error message could already be suppressed by creating native library sub-folders for every platform/architecture and adding an empty dummy file into each. If this is deemed a sufficient solution, then it should probably be documented somewhere.
Ah yes, the mere existence of the architecture folder (at the time of Processing startup, not at the time of running the sketch) seems to be enough to suppress the message, at least on MacOS!
Ok good; let's go with that. I've updated the wiki notes to that effect, since the solutions to handle this on the PDE are far too complicated for a situation this rare.
Created by: kevinstadler
Description
Processing 4.3 produces bogus/misleading console error messages of the format
library.getName() + " does not run on this architecture: " + variant
when running sketches that load a library which bundles native libraries for at least one architecture, but none for the architecture/OS on which the sketch is run. The error message is triggered by the following heuristic:processing4/app/src/processing/app/Library.java
Lines 511 to 517 in f1da373
which is a bit too aggressive: the upcoming release of the Processing Sound library will bundle native dlls for Windows to improve audio device support, but not for other platforms (linux, mac, arm, android) which it nevertheless supports out of the box. Based on the current behaviour, users of any platform other than Windows will be shown a disconcerting (and wrong) error message any time they run a sketch.
Expected behaviour
There should be a way for libraries to selectively suppress Processing's 'does not run on this architecture' error message, for example by providing an optional mechanism that allows libraries to specify explicitly which OSs/platforms they support (maybe something for
library.properties
?).I suppose the error message could already be suppressed by creating native library sub-folders for every platform/architecture and adding an empty dummy file into each. If this is deemed a sufficient solution, then it should probably be documented somewhere.
Steps to Reproduce
On any platform/OS other than Windows, run any of the example sketches from this current dev build of the Sound library.
The text was updated successfully, but these errors were encountered: