2015-11-16 85 views
2

最近我們使用nativescript來構建應用程序,我們需要使用提供IOS和Android SDK的第三方餅圖庫。 但是,即使我們將.so文件推送到lib文件夾,它也失敗了,錯誤是庫在應用程序運行期間無法找到預期的.so文件。
所以我想知道nativescript是否支持.so文件以及如何使它工作? 在此先感謝。nativescript在android平臺中是否支持.so文件?

+0

您可以閱讀[{N}谷歌組(https://groups.google.com/forum/#!topic更多關於這個話題/ nativescript/p8y2Y_Q4mpc)。 –

回答

1

目前這個任務並不在tns CLI自動化,但它應該是可能的*.so文件複製<project>/platforms/android/libs/jni/armeabi-v7a和/或<project>/platforms/android/libs/jni/x86目錄。 Gradle構建尊重這些文件夾,並且*.so文件將包含在*.apk包中。

+0

將jni/arm64-v8a,jni/armeabi-v7a,jni/x86文件夾中的* .so文件複製過一段時間。但是,當我將tns核心模塊升級到最新版本時,它停止工作。如果我有jni文件夾,android應用程序將在啓動時沒有任何錯誤地崩潰。 –

0

將.so文件和.jar文件一起推送的更好方法是使用Android Studio將它們重新打包爲.aar文件。然後將包裝器.aar文件複製到您的nativescirpt平臺/ android/libs文件夾。

以下是將SDK .jar和.so文件打包到aar文件中的步驟。

  1. 在Android Studio中創建一個空白活動的應用程序。
  2. 創建一個新的包裝模塊yoursdkwrapper(New-> New Module-> Android Library)。
  3. 將您的SDK .jar文件複製到MyApplication \ yoursdkwrapper \ libs文件夾中。
  4. 在MyApplication \ yoursdkwrapper \ src \ main \文件夾下,創建以下目錄結構並將.so文件複製到每個體系結構文件夾:jniLibs/arm64-v8a,jniLibs/armeabi,jniLibs/armeabi-v7a,jniLibs/x86 。
  5. yoursdkwrapper-debug.aar文件將在您的MyApplication \ epos2wrapper \ build \ outputs \ aar中生成。
0

除了Karthik Sankar的回答。 我* .so文件被複制到應用程序,但沒有被引用。

在這種情況下,您需要手動引用所有這些。 java.lang.System.loadLibrary("avcodec");

檢查*.so文件是否被複制使用Native Libs Monitor應用程序。

ReLinker可能也有幫助

查看詳細https://github.com/bytedeco/javacpp-presets/issues/303

相關問題