I'm using Ubuntu 14.04 with arduino Galileo and the newest arduino IDE from arduino.cc and every time I compile I got this warnings with any library in place of EEPROM, SD, Wire, Wifi and a lot of others.

When I check the boards manager I got the following:

Invalid library found in /home/User/.arduino15/packages/Intel/hardware/i586/1.6.2+1.0/libraries/Wire: /home/User/.arduino15/packages/Intel/hardware/i586/1.6.2+1.0/libraries/Wire

Anyone knows how to solve this?


As sated above you need to "Edit or add library.properties to that folder so that you specify a valid category."

This link has some good info on the structure of the file: https://github.com/arduino/Arduino/wiki/Arduino-IDE-1.5:-Library-specification

From that link:

library.properties file format

The library.properties file is a key=value properties list. Every field in this file is UTF-8 encoded. The available fields are:

**name** - the name of the library
version - version of the library. Version should be semver compliant. 1.2.0 is correct; 1.2 is accepted; r5, 003, 1.1c are invalid
**author** - name/nickname of the authors and their email addresses (not mandatory) separated by comma ","
**maintainer** - name and email of the maintainer
**sentence** - a sentence explaining the purpose of the library
**paragraph** - a longer description of the library. The value of sentence always will be prepended, so you should start by writing the second sentence here
**category** - if present, one of these: "Display", "Communication", "Signal Input/Output", "Sensors", "Device Control", "Timing", "Data Storage", "Data Processing", "Other"
**url** - the URL of the library project, for a person to visit. Can be a github or similar page as well
architectures - a comma separated list of architectures supported by the library. If the library doesn’t contain architecture specific code use “*” to match all architectures
**dot_a_linkage** - (available from IDE 1.6.0 / arduino-builder 1.0.0-beta13) when set to true, the library will be compiled using a .a (archive) file. First, all source files are compiled into .o files as normal. Then instead of including all .o files in the linker command directly, all .o files are saved into a .a file, which is then included in the linker command.
**includes** - (available from IDE 1.6.10) a comma separated list of files to be added to the sketch as #include <...> lines. This property is used with the "Include library" command in the IDE. If the property is undefined all the headers files (.h) on the root source folder are included.

Edit or add library.properties to that folder so that you specify a valid category.

Example of library.properties:

author=Cristian Maglie <c.maglie@example.com>, Pippo Pluto <pippo@example.com>
maintainer=Cristian Maglie <c.maglie@example.com>
sentence=A library that makes coding a Webserver a breeze.
paragraph=Supports HTTP1.1 and you can do GET and POST.

From: https://www.bountysource.com/issues/29336127-one-wire-library-still-in-v2-3-0-causes-useless-warning

The Arduino library manager still defaults to v2.3.0, which causes the IDE to raise the following warning on compile :

WARNING: Category '' in library OneWire is not valid. Setting to 'Uncategorized'

Solution (In 1.6.12):

  1. Sketch -> Include Library -> Manage Libraries
  2. In the upper-right "Filter Your Search" box enter (without the quotes): "OneWire"
  3. Click the "OneWire by Jim Studt, Tom P..."
  4. Select version 2.3.1 (or newer)
  5. Click "Install"

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.