[Développement] ClassDefNotFoundError ou ClassNotFoundException après la mise à jour ADT 17

Il y a quelques jours, le plugin Eclipse ADT version 17 et le SDK Tools r17 ont été publiés et disponibles en mis à jour. Si vous avez fait cette mise à jour, vous vous êtes sûrement aperçu de quelques changements importants apportés, notamment sur la dépendance des librairies. Si vous rencontrez une erreur de compilation de votre projet Android sous Eclipse (ClassNotFoundException, ClassDefNotFoundError), ne cherchez pas plus loin, la source du problème est la mise à jour de ces derniers outils de développement.

En effet en lisant le changelog écrit par Xavier Ducrohet (responsable de ces outils), retenons un changement important au niveau Eclipse:

« The dynamic classpath container called “Library Projects” has been renamed to “Android Dependencies” as it now contains more than just Library Projects.

The container will now also be populated with Java-only projects that are referenced by Library Projects. If those Java projects also reference other Java projects and/or jar files they will be added automatically (jar files referenced through user libraries are supported as well).

Important: this only happens if the references are set to be exported in the referencing project. Note that this is not the default when adding a project or jar file to a project build path.
Library Projects (and the content of their libs/*.jar files) is always exported. This change only impacts Java-only projects and their own jar files. »

Par conséquent, si votre projet Android dépend ou utilise un autre projet purement Java, n’oubliez pas d’exporter ce projet en cochant les librairies à exporter.

Ensuite, n’oubliez pas de faire un « Clean project » pour qu’Eclipse prenne bien en compte vos modifications.

Plus d’informations sur le post Google+ de Xavier et merci à Nicolas Klein, ancien participant du PAUG, aujourd’hui travailleur à San Francisco où il y explique d’autres problèmes liés (notamment avec le répertorie /libs /lib) et leur solutions avec des captures d’écran (notez la capture avec ACRA, la librairie qui a été présentée au PAUG).

Quang-Hai PHAN

Développeur indépendant. A travaillé sur divers projets Web et Android.twitter (@parisfreelance), Google+ , linkedin ou blog.