- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我无法让 minizip 在 android 上运行。我首先尝试将它作为静态链接到我的应用程序共享库。但是,一旦我使用那个 minizip 库中的代码,我就得到了一个不满意的链接错误。我有一些其他库可以工作,libzip 和 libpng。所以为了比较我将这三个编译成共享库并使用 System.loadLibrary("libpng"); System.loadLibrary("libzip");System.loadLibrary("最小化");在应用程序之前加载它们。
LogCat 输出如下:
02-28 21:12:23.371: D/dalvikvm(21023): 尝试加载 lib/data/data/com.flotsamworks.seadrift/lib/liblibpng.so 0x4a315c18
02-28 21:12:23.381: D/dalvikvm(21023): 添加了共享库/data/data/com.flotsamworks.seadrift/lib/liblibpng.so 0x4a315c18
02-28 21:12:23.381: D/dalvikvm(21023): 在/data/data/com.flotsamworks.seadrift/lib/liblibpng.so 0x4a315c18 中找不到 JNI_OnLoad,跳过初始化
02-28 21:12:23.411: D/dalvikvm(21023): 尝试加载 lib/data/data/com.flotsamworks.seadrift/lib/liblibzip.so 0x4a315c18
02-28 21:12:23.421: D/dalvikvm(21023): 添加了共享库/data/data/com.flotsamworks.seadrift/lib/liblibzip.so 0x4a315c18
02-28 21:12:23.431: D/dalvikvm(21023): 在/data/data/com.flotsamworks.seadrift/lib/liblibzip.so 0x4a315c18 中找不到 JNI_OnLoad,跳过初始化
02-28 21:12:23.431: D/dalvikvm(21023): 尝试加载 lib/data/data/com.flotsamworks.seadrift/lib/libminizip.so 0x4a315c18
02-28 21:12:23.451:I/dalvikvm(21023):无法 dlopen(/data/data/com.flotsamworks.seadrift/lib/libminizip.so):无法加载库:link_image [2033]:链接失败libminizip.so
如您所见,minizip 失败。但为什么?我真的不知道。编译很轻松,没有问题。我怀疑它依赖于一些 android 没有的东西或更新的 libz。
至于编译,我只设置了这些链接器选项,它们对于 libzip 和 libpng 是完全相同的。 -shared -Wl,--fix-cortex-a8 -lz
如果您想查看生成文件和代码,我已经上传了该项目。I code/是代码....在build/android8_gmake/中可以找到build.sh,配置gcc、g++和ar三个路径。在 ./debug/bin 中,您会发现我使用的已经构建的共享对象。
http://projects.woutervandongen.com/thirdparty_sharedlibs_28_2_12.zip
我将 NDKr7b 与通过以下方式生成的自定义工具链一起使用:make-standalone-toolchain.sh --platform=android-8 --install-dir=./standalone-toolchain-api8
请帮忙
问候,
沃特
最佳答案
真傻!
由于 Android 不支持 fseeko64 minizip 将无法正确链接。我寻找一个定义来解决这个问题并发现它是;
USE_FILE32API
问题解决了!
关于android - 无法将 minizip 代码加载到 Android JNI 中。链接 libminizip.so 失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9490371/
我无法让 minizip 在 android 上运行。我首先尝试将它作为静态链接到我的应用程序共享库。但是,一旦我使用那个 minizip 库中的代码,我就得到了一个不满意的链接错误。我有一些其他库可
我是一名优秀的程序员,十分优秀!