Hi @Terrypin.
The identifier for the Arduino library is the value of the name
property in the library's library.properties
metadata file. This means that it is possible for multiple global library installations to have the same identifier. This isn't something that can happen when you install libraries via Arduino IDE 2.x because it always installs the library under a folder named after the library name, so it is an unusual condition, but it is possible to accomplish it either through a manual library installation, or through the Arduino IDE 1.x "Add .ZIP Library..." feature (which uses the folder name from the ZIP file for the installation).
Arduino IDE isn't smart enough to understand how it should update the library under these conditions, so it errors out and displays this message instructing the user to resolve the library duplication (reference).
If you open the file at this path in a text editor:
C:\Users\terry\Dropbox\Electronics\Arduino\SKETCHES\libraries\Keyboard_Serial\library.properties
you will see this line in the file:
name=Keyboard
You will of course also see the same in this file:
C:\Users\terry\Dropbox\Electronics\Arduino\SKETCHES\libraries\Keyboard\library.properties
You will notice that in at least one of those files, the value of the version
property is something lower than 1.0.6
, which is what causes Arduino IDE to identify the library as updatable.
If these are two redundant copies of the same library, you can resolve the problem by deleting one of the library folders. In this case I would recommend deleting the one with the non-standard folder name:
C:\Users\terry\Dropbox\Electronics\Arduino\SKETCHES\libraries\Keyboard_Serial
If they are two different libraries, then it is not appropriate for both of them to have the same name. You should change the value of the name
property in this file to something unique:
C:\Users\terry\Dropbox\Electronics\Arduino\SKETCHES\libraries\Keyboard_Serial\library.properties
Although in general the underlying behavior of Arduino IDE 1.x and 2.x are aligned, a large amount of evolution of the codebase has occurred in the years since development on Arduino IDE 1.x ceased. So it is expected that you might observe differences in behavior in obscure corner cases like the one you produced by making multiple global library installations that have the same identifier.
I'm not interested enough in the subject in regards to Arduino IDE 1.x to perform an in depth investigation, but I would guess that the reason it does not consider the library to be updatable is because it considers there to only be a single installation of the library under these conditions, and (whether by accident or design) it uses the version value from the copy that has a version
property value of 1.0.6.