#1348 closed defect/bug (fixed)

Invalid DT_NEEDED entry warnings on Android Nougat

Reported by: mvglasow (2) Owned by: cp15
Priority: major Milestone:
Component: port/android Version: git master
Severity: normal Keywords:


After switching to Android Nougat, I get an error message on startup, after which Navit operates normally.

The message is repeated a few times, for a couple of libraries:

libgraphics_android.so: invalid DT_NEEDED entry "/data/data/org.navitproject.navit/lib/libnavit.so"

According to https://android-developers.googleblog.com/2016/06/android-changes-for-ndk-developers.html, this is due to libnavit.so being incorrectly referenced with a full path name. Earlier versions of Android would simply strip the path and look for the library in the default paths, but beginning with API 23, Android starts complaining.

Reproduced with R7272.

Change History (3)

comment:1 Changed 15 months ago by mvglasow (2)

As it looks, CMakeLists.txt had an extra line that explicitly set soname to the full path. The comment indicates that it is a workaround for API 3 (sic!). This code was introduced in September 2011.

Since Navit by now requires at least API 7, this workaround is hopefully obsolete. Should it still be needed for API 7, we’ll need to discuss how to tackle this, as this is definitely breaking things on API 23+.

The commit is 7782ba.

comment:2 Changed 15 months ago by mvglasow (2)

Merged as R7275.

comment:3 Changed 15 months ago by mvglasow (2)

  • Resolution set to fixed
  • Status changed from new to closed
Note: See TracTickets for help on using tickets.