【问题标题】:stlport_shared.so not getting pushed onto the devicestlport_shared.so 没有被推送到设备上
【发布时间】:2011-09-10 10:44:45
【问题描述】:

我正在定义 Application.mk APP_STL := stlport_shared

当我运行 ndk-build 时,它依次生成文件: stlport_shared.so in obj/local/armeabi/ 但它不会将此文件复制到 libs/armeabi/ 因此,它不会被复制到设备中,并且 System.loadLibrary() 抛出 UnsatisfiedLinkError。

谁能帮忙?

【问题讨论】:

    标签: android-ndk-r5


    【解决方案1】:

    我认为您需要在 Android.mk 文件中包含以下内容:

    include $(CLEAR_VARS)  
    LOCAL_MODULE := stlport_shared  
    LOCAL_SRC_FILES := stlport_shared.so  
    include $(PREBUILT_SHARED_LIBRARY)  
    

    【讨论】:

      【解决方案2】:

      应在 Application.mk 中提及为: APP_MODULES := stlport_shared.so other_dependent.so

      按顺序复制到设备上。

      【讨论】:

      • 不过应该​​没有.so前缀。
      • 如果您添加此指令,请确保也包含您的其他模块。然而,即使没有这个指令,Android Studio 似乎仍然会将 libstlport_shared.so 安装到 libs 下的相应文件夹中。
      【解决方案3】:

      我必须在我的 java 文件中添加一行来加载它:

      System.loadLibrary("stlport_shared");
      System.loadLibrary("my_lib");
      

      【讨论】:

        【解决方案4】:

        正如 Nishant 所说,您需要使用:

        APP_STL       := stlport_shared
        APP_MODULES   := stlport_shared mymodule ...
        

        APP_STL 确保使用 STLport,而APP_MODULES 确保将其复制到需要的地方。

        这是一个错误,stlport_shared 没有根据需要复制。请参阅 Android 问题 21180:APP_STL := stlport_shared doesn't install libstlport_shared.so into libs directory。它应该在 NDK R7b 中修复。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多