We have an app on google play, and we are about to publish update, but testing update on JB device resulted in UnsatisfiedLinkError when calling System.loadLibrary(“ourlib”) in our code. ourlib is library compiled by us using NDK. This error shows only on 4.1 devices.
I suspect that it has something to do with new security on JB, app was first installed with Google Play with lets say version 1, and then reinstalled with version 2 using adb or from device using apk.
I could not find anything related to that on google, what could be the problem?
this problem
http://code.google.com/p/android/issues/detail?id=35962
looks similar but it appears that it was an error in google play actually.
The solution is to use:
$ adb install -r -l my.apk
this makes apk to be reinstalled with use of forward-lock (aka. copy protection), I supose that because apk was upladed to google play with copy protection enabled then also forward-lock option in adb had to be added. I know JB introduced some changes with forward lock so this might be the case. I dont know internals of what really caused this problem, but above seems to work.