在android ndk项目中添加libpng

2024-03-03

我搜索了很多有关将 libpng 链接到我的 android ndk 项目的主题,但我找到了解决我的问题的正确答案,我希望有人能帮助我。

这是我的项目的层次结构:

jni

different_cpp_files
different_hpp_files
Android.mk
libpng
    different_cpp_files
    different_hpp_files
    Android.mk

libpng 文件夹中的 Android.mk:


LOCAL_PATH:= $(call my-dir)

include $(CLEAR_VARS)

LS_C=$(subst $(1)/,,$(wildcard $(1)/*.c))

LOCAL_MODULE := png

LOCAL_SRC_FILES := \

$(filter-out example.c pngtest.c,$(call LS_C,$(LOCAL_PATH)))

LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH)

LOCAL_EXPORT_LDLIBS := -lz

include $(BUILD_STATIC_LIBRARY)

我想一切都在这里..

jni文件夹中的Android.mk:


LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)

LS_CPP=$(subst $(1)/,,$(wildcard $(1)/*.cpp))

LOCAL_MODULE    := pacman

LOCAL_CFLAGS    := -Wno-psabi

LOCAL_SRC_FILES := $(call LS_CPP,$(LOCAL_PATH))

LOCAL_LDLIBS    := -landroid -llog -lEGL -lGLESv1_CM -lOpenSLES

LOCAL_STATIC_LIBRARIES := android_native_app_glue png

include $(BUILD_SHARED_LIBRARY)

$(call import-module,android/native_app_glue)

$(call import-module,libpng)

最后一行显示我得到了像native_app_glue lib一样的libpng(在android-ndk源目录中)现在我想从我的项目编译libpng。我需要在 Android.mk 文件中更改什么?


我有另一种方法给你:

  1. 从此处下载所有文件并将其粘贴到系统上任意位置的新文件夹中:
    https://github.com/julienr/libpng-android https://github.com/julienr/libpng-android

  2. 进入文件夹并运行:
    ./build.sh

  3. 你会得到一个 libpng.a 文件[YOUR_FOLDER]/obj/local/armeabi/libpng.a
    将此文件复制到:
    [YOUR_ANDROID_NDK_FOLDER]/platforms/[ALL_FOLDERS_IN_HERE]/arch-arm/usr/lib/

  4. 现在您可以通过简单的行在所有项目中使用 libpng:
    LOCAL_LDLIBS += -lpng

  5. 您只需将其包含在您的 cpp 中:
    #include <png.h>

玩得开心!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在android ndk项目中添加libpng 的相关文章

  • Eclipse ADT“...无法解析”Android NDK 和 C 文件

    我的 NDK 项目的 Eclipse 索引器出现问题 那里有很多类似的线程 但似乎没有一个涉及相同的问题根源 我有一个 OpenGL ES 应用程序 我需要将其移植到纯粹用 C 编写的 Android 我想将其作为 NativeActivi
  • Android:错误:无法打开 crtbegin_dynamic.o:没有这样的文件或目录

    我使用了以下 开发 Android android ndk r8c build tools make standalone toolchain sh platform android 9 install dir Users me toolc
  • 您的 APP_BUILD_SCRIPT 指向未知文件:./jni/Android.mk

    我正在尝试让 ndk gdb 工作 但遇到一些问题 我的项目结构是这样的 trunk indiana Here is the android manifest ubravo java mbravo here is the native co
  • Android视频删除色度键背景

    我检查过this https stackoverflow com questions 12813089 i am working on android camera app i want to capture image and chang
  • 导入 pygame.font 失败

    import pygame对我来说效果很好 但是import pygame font失败并出现错误 ImportError dlopen Library Frameworks Python framework Versions 2 7 li
  • Android NDK 构建,方法无法解析

    我有一个带有本机代码的 Android 项目 我可以通过调用从命令行构建本机代码ndk build命令没有错误或警告 但是当我在ADT中打开它时 它显示以下错误 错误信息 Method CallStaticIntMethod could n
  • Android 中通过 OpenMAX 访问相机

    我目前正在尝试弄清楚如何在 Android 4 0 中通过 OpenMAX 访问相机 该文档对我来说还不够 所以我目前正在努力解决如何检索正确的问题XADataSource对于以下调用 engine gt CreateMediaRecord
  • NDK 对静态库中函数的未定义引用

    因此 我尝试在 Android 应用程序的本机代码上使用 libopus 我的 Android mk 文件如下所示 PLATFORM PREFIX opt android ext LOCAL PATH PLATFORM PREFIX lib
  • Android NDK __android_log_print函数和LogCat

    我有一个类似的功能 android log print ANDROID LOG INFO HelloNDK 在我的 C 代码上 我在 LogCat 上找不到该输出 我需要设置什么样的过滤器 按日志标签 按日志消息 按应用程序名称 按日志级别
  • 调试 Android 库中的本机代码

    我的工作空间布局是 ApplicationLibrary AndroidManifest xml jni libs src Application AndroidManifest xml ant properties 如何在 Eclipse
  • 如何在Android项目中使用libffmpeg.so?

    我正在尝试在 Android 中创建一个屏幕录制应用程序 为此 我使用 FFmpeg 我已经创建了 libffmpeg so 文件 现在我想在 Android 项目中使用相同的方法来调用它的本机函数 我怎样才能做到这一点 本教程提供了有关此
  • 如何使用android ndk r9b为Android编译FFMPEG

    我想设计一个Android应用程序 可以通过FFMPEG命令播放和编辑视频 但我不知道如何在Android上使用FFMPEG 我尝试过从Google搜索到的许多方法 但它们太旧了 无法实现 现在 FFMPEG的最新版本是2 1 1 Andr
  • 安装 OpenGL ES 并编译 Android 代码

    我刚刚开始在 android 上学习 OpenGL ES 使用这本书 https rads stackoverflow com amzn click com 1430226471 并遇到了采用的问题source http apress co
  • 使用 Android NDK 将文件写入 SD 卡以外的位置?

    除了SD卡之外 还有其他方法可以将文件写入其他位置吗 我在文件系统上尝试了许多不同的路径 但 fopen 总是返回 NULL 除了我在 sdcard 内写入 读取的任何文件 还有其他相当于
  • NewObject 调用上的间接引用无效

    好的 我有下面的本机代码 我试图从中返回一个 FilePermissionInfo 数组 其中填充了 stat 返回的一些数据 问题是第一次调用 NewObject 时出现以下错误 06 15 20 25 17 621 W dalvikvm
  • Android NDK 中使用“dynamic_cast”时出现“UnsatisfiedLinkError”

    我是 Android 开发新手 我面临下一个问题 当我使用 C 代码时 动态演员 表达方式 不满意的链接错误 当我在模拟器上启动应用程序时出现 但是当我在没有它的情况下运行应用程序时 一切正常 我的意思是 LogCat 没有任何错误 我尝试
  • android ndk 硬件调试内存

    背景 我对 C 很有经验 对 Android 和 Java 还很陌生 但这是编程的环境问题 我已经用 ANSI C 开发了一个管理应用程序 可以移植到任何操作系统 只需在依赖于操作系统的代码中添加 UI 即可 它使用相当多的内存 特别是对于
  • 吉夫伦致命信号11

    我正在尝试使用一些本机代码来创建 Gif 我使用绘画绘制图像 创建一些笔画 单击 保存 绘制的图像将保存为 JPG 格式 当我单击 创建 Gif 时 它会获取所有图像并开始创建 gif 这是当我收到致命信号 11 并且应用程序重新启动时 我
  • Android NDK:没有规则来创建目标

    我正在尝试使用 NDK 构建一个简单的 Android 应用程序 这是我的Android mk的内容 LOCAL PATH call my dir include CLEAR VARS LOCAL LDLIBS llog LOCAL MOD
  • NDK 应用 onDestroy 清理 - 如何 DetachCurrentThread

    因此 如果我们连接 我们必须在完成后分离线程 对吗 JNIEnv get jni env JNIEnv res JAVA VM gt GetEnv void res JNI VERSION 1 6 Using cached JavaVM J

随机推荐