專案原基於 Android 4.4.2 (JDK 1.7) 編譯,後需降級至最低 Android 2.3.3 (JDK 1.6)。修改後在 4.4.2 手機運行正常,但在 4.0.4 設備上 JNI 模組拋出 UnsatisfiedLinkError,找不到 Native 方法。代碼邏輯與編譯均無誤,問題出在哪裡?Android 4.4.x 與 4.1.x 在 JNI 層有何變更?
經排查,Application.mk 中多加了 APP_STL := stlport_shared,但該 STL 實際為空,導致主 .so 載入失敗,進而引發 JNI 方法找不到。
Application.mk 中的 APP_STL 設定,改用預設或存在的 STL(如 gnustl_shared、c++_shared)。.so 均正確打包進 APK。