android - 将 minizip 与 android ndk 一起使用

标签 android android-ndk java-native-interface zlib

我需要使用 minizip在 android ndk 中使用 zlib。

我的 jni/MyApp/Android.mk 文件:

LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)

LOCAL_MODULE    := MyApp
LOCAL_SRC_FILES := MyApp.cpp

LOCAL_LDLIBS := -lz

include $(BUILD_SHARED_LIBRARY)

我的jni/Android.mk

LOCAL_PATH := $(call my-dir)
include $(call all-subdir-makefiles)

我的jni/MyApp/MyApp.cpp

#include <zlib.h>
#include "minizip/unzip.h" #it's in jni/MyApp/minizip/unzip.h

void unzip(char* file, char* folder) {
    unzFile zip = unzOpen(file);
}

我的jni/Application.mk

APP_MODULES      := MyApp
APP_STL := gnustl_static 

但是,当我编译它时:

Gdbserver      : [arm-linux-androideabi-4.6] libs/armeabi/gdbserver
Gdbsetup       : libs/armeabi/gdb.setup
SharedLibrary  : libMyApp.so
C:/android-ndk-r8d/toolchains/arm-linux-androideabi-4.6/prebuilt/windows/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld.exe:
Z:/workspace/MyApp/obj/local/armeabi/objs-debug/MyApp/MyApp.o: in function unzip(char*, char*):Z:/workspace/MyApp/jni/MyApp/MyApp.cpp:5: error: undefined reference to 'unzOpen' collect2: ld returned 1 exit status make: *** [Z:/workspace/MyApp/obj/local/armeabi/libMyApp.so] Error 1

如果我删除行“unzFile zip = unzOpen(file);”它有效

你能帮帮我吗? :D

谢谢!

最佳答案

哦...

我忘了在 LOCAL_SRC_FILES 中添加 c 文件 :D

关于android - 将 minizip 与 android ndk 一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14503315/

相关文章:

android - 在屏幕中央对齐控件

android - Android 仿生 libc 中缺少 adjtime()

java - 从 native C 代码调用 java 类的多个实例

android - 如何使用 kotlin Android 从 Url 读取 JSON?

java - 如何在其他线程上正确执行数据库调用?

android - 如何编写使用内置相机拍照的 Solo/Robotium 测试用例?

由于 NDK 版本不兼容,Android 在 CI 中构建失败,但本地不兼容

Android NDK 加载库 ("KERNEL32.DLL")

java - Android Studio 中的断点 C++ 文件

java - 从 JNI 操作 ByteBuffer