gpt4 book ai didi

java - JNI NewIntArray() 无法创建大数组

转载 作者:太空宇宙 更新时间:2023-11-04 03:02:57 25 4
gpt4 key购买 nike

我使用 JNI 调用通过 Android 类位图加载 PNG 文件使用本指南 http://lol.zoy.org/blog/2011/3/2/load-pngs-using-android-ndk .
在我尝试从位图中获取像素数据之前,这一切都完美无缺。我无法创建适合图像数据 (512*256) 的 jint 数组,应用程序在此行崩溃。我做了一些测试,它只对大小 <= 85000 的 jint 数组(在我的 HTC Desire 上)有效而不会崩溃。我认为这是一些内存不足的错误,但我在 logcat 中没有收到相关错误,我尝试只创建一个 jint 数组而没有任何其他代码它也会崩溃。

#include <jni.h>    

int load_image_png(const char* path, GLuint* width, GLuint* height, void** image_data){
//Skip part what works fine - get bitmap width and height
//width=512, height=256

jintArray array = g_env->NewIntArray(width*height);//FAIL OVERHERE

jint* pixels = g_env->GetIntArrayElements(array, 0);
*image_data = pixels;

//closing a bitmap work fine too

return 0;

附言如果有人可以提供从 Java 代码加载 png 的替代方法(没有 pnglib 和像 http://androgeek.info/?p=275 中的 native 函数),那将是很棒的

最佳答案

异常不会在 JNI 中自动发生。您必须编写代码来触发它们。即它将错误存储在某处,您必须添加代码来说明您希望在何处触发异常。

http://java.sun.com/docs/books/jni/html/exceptions.html


来自 http://www.google.co.uk/search?q=java+png+library

http://code.google.com/p/javapng/

http://code.google.com/p/pngj/

我不知道哪个更好。

关于java - JNI NewIntArray() 无法创建大数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9174228/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com