草庐IT

JNI_ASSERT

全部标签

android - 场景过渡动画上的 JNI 错误 - 图层超过最大值

请注意问题底部的EDIT我有2个Activity:ActivityA、ActivityB以及相关联的fragment:FragmentA、FragmentB。ImageViewv在这两个fragment之间共享。一些代码:ActivityAIntentintent=newIntent(this,ActivityB.class);finalActivityOptionsCompatactivityOptionsCompat=ActivityOptionsCompat.makeSceneTransitionAnimation(this,imageView,"photo");Activity

java - 分析 JNI 应用程序

我们如何在使用JNI层的Java应用程序中跟踪内存分配。更具体地说,如果底层C代码进行了一些内存分配,我们是否可以使用一些分析器[Eclipse/Netbeans]跟踪这些分配。 最佳答案 应该可以使用像Valgrind这样的原生框架来跟踪这些分配。.RunningaJNIapplicationintheSunVMunderValgrind 关于java-分析JNI应用程序,我们在StackOverflow上找到一个类似的问题: https://stackov

Java app通过JNI调用C++ DLL;如何最好地分配内存?

问题的基本摘要是:如何最好地优化我的内存分配,为我通过JNI访问的DLL提供尽可能多的内存?我应该以最小化什么为目标,我应该以什么为最大目标,等等。系统:在具有4GBRAM的32位系统中将JBoss6作为Windows32服务运行。我确实了解JavaHeap的内存有最大限制。JVM是JRE1.6.0_26服务:JBoss下安装了一个webapp,它接收来自客户端的请求;每个请求都通过JNI调用C++构建的DLL以某种方式处理图像文件。问题:有时,对于较大的或部分(不是全部)LZW压缩图像,调用java类会收到一条消息,指出DLL经历了全局内存耗尽并且未能完成请求的进程。除了基本的Win

Java JNI : Memory allocation/partitioning

在使用JNI时,JNI二进制文件是使用自己的内存,还是使用分配给JVM的部分内存?详情当您将-Xmx1024m指定为JVM选项时,JVM是否将所有1024mb内存分配给Java对象?它是否将其中的一部分用于Java对象而将部分用于JNI二进制文件,或者JNI二进制文件是否必须使用除此数量之外的内存?在这种情况下,JVM是如何分配/分区/管理内存使用的?相关问题:Javamemoryallocationlimit 最佳答案 当我们在一些JNI代码中发生内存泄漏时,我第一手发现,JNI二进制文件在任何JVM堆空间之外的JVM进程中使用它

java - 在使用 va_arg 传递 char* 时,在 JNI 中将 char* 转换为 jstring

是否需要将char*转为jbyteArray,然后调用javaString构造函数生成jstring?还能怎么做?请帮忙。staticinttesthandler(void*arg,...){inti;structcallback*cb=(structcallback*)arg;JNIEnv*env=cb->env;char*sig=cb->signature;jintsize=(jint)strlen(sig);jintsize1;va_listarguments;jobjectArrayreturn_array;jclassobj_class;jbyteArraybytes;jst

java - Java Native Interface (JNI) 是否受 C++ ABI 兼容性问题的影响?

Java原生接口(interface)(JNI)是否受到C++ABI兼容性问题的影响?我正在开发一个Java应用程序。我想使用Javanative接口(interface)(JNI)来调用C++库中的函数。我可以访问C++库的代码,并且可以根据需要重新构建它。(例如,我可以静态链接C++运行时。)我可以要求我的用户拥有JRE6或更高版本,但我不能要求他们拥有任何特定的C++运行时。一位同事向我推荐了这篇博客文章:http://www.trilithium.com/johan/2005/06/static-libstdc/建议不要使用动态加载的C++代码。另一位同事向我指出了这个错误报告

c++ - 是否有满足 C99 标准的 static_assert 替代品?

我一直在尝试实现类似于C++11标准中定义的static_assert的方法。主要问题是C++编译器如何将传递给static_assert的文本消息编写为constchar*?我可以让编译器编写类似A_is_not_POD的消息。这就是我所拥有的:#defineMY_STATIC_ASSERT(condition,name)\typedefcharname[(condition)?1:-1];但是让编译器编写类似"Error:AisnotPOD."之类的东西会非常好。有什么建议吗? 最佳答案 不确定我是否理解问题,但C11有_Sta

c++ - BOOST_MPL_ASSERT 和 BOOST_STATIC_ASSERT 哪个更好?

我记得BOOST_MPL_ASSERT曾经是首选。这仍然是真的吗?有人知道为什么吗? 最佳答案 [回答我自己的问题]这取决于。这是一个苹果与橘子的比较。尽管相似,但这些宏不可互换。以下是每个工作原理的摘要:BOOST_STATIC_ASSERT(P)如果P!=true则生成编译错误.BOOST_MPL_ASSERT((P))如果P::type::value!=true则生成编译错误.尽管需要双括号,后一种形式特别有用,因为它可以生成更多信息性错误消息如果使用bool空元元函数来自Boost.MPL或TR1的作为谓词。这是一个示例程序

java - 通过 JNI 将 float[][] 传递给 C++ 的最简单方法

在我的Java代码中,我有一个2Dfloat组float[x][4]floatArray。这里x可以介于1和25之间。我必须通过JNI将这个2Dfloat组传递给C++方法。我的JNI方法是jbooleanMyJNIMethod(JNIEnv*env,jobjectobj,jobjectArraymyArray){//howtoconvertthismyArraytosomethingthatcanbesafelypassedtoC++methodbelow}在MyJNIMethod内部,我必须调用一个C++方法并将从Java获取的2Dfloat组传递给该方法boolMyCplusPl

java - JNI如何访问Java对象(整数)

我有一个JNI方法来访问返回Integer对象的java方法。我不想返回原始int类型,因为此代码将被修改以处理通用对象。以下是我所拥有的。我无法获得我通过的Integer的值。C++端的输出类似于value=0x4016f3d0如何获取在C++端传递的Integer对象的实际值?请帮忙。谢谢,-HGenericPeer.cppJNIEXPORTvoidJNICALLJava_GenericPeer_print(JNIEnv*jenv,jclassjcls,jobjectdata){jclasspeerCls=jenv->GetObjectClass(data);jmethodIDmG