DalivikランタイムとARTランタイムの両方を備えた Android KitKat で常に動作するネイティブ アプリケーションがありますが、 Android Lでは次のトレースでクラッシュします。
E/art(12810): dlopen("/data/app-lib/com.mylib.example", RTLD_LAZY) failed: dlopen failed: cannot locate symbol "issetugid" referenced by "mylib.so"...
D/AndroidRuntime(12810): Shutting down VM
E/AndroidRuntime(12810): FATAL EXCEPTION: main
E/AndroidRuntime(12810): Process: com.mylib.example, PID: 12810
E/AndroidRuntime(12810): java.lang.UnsatisfiedLinkError: dlopen failed: cannot locate symbol "issetugid" referenced by "mylib.so"...
E/AndroidRuntime(12810): at java.lang.Runtime.loadLibrary(Runtime.java:364)
E/AndroidRuntime(12810): at java.lang.System.loadLibrary(System.java:610)
Android L の ART ランタイムは KitKat とは異なりますか? 利用可能な新しい NDK はまだないため、機能issetugid
がサポートされなくなっているように見えるため、このクラッシュを回避する方法を説明します。