草庐IT

check_jni

全部标签

android - DalvikVM 上的 CLI 在 JNI 库上失败

我需要在Android上运行java应用程序的命令行版本(是的,我知道这并不简单)。我正在尝试使用Dalvikvm启动它,它确实启动了,但稍后我的代码失败了,因为它开始使用android.util.log并抛出此异常。java.lang.UnsatisfiedLinkError:println_nativeatandroid.util.Log.println_native(NativeMethod)atandroid.util.Log.i(Log.java:159)atorg.slf4j.impl.AndroidLogger.info(AndroidLogger.java:151)at

安卓 SQL : Check if Record in Database Exists

我正在尝试根据特定ID查询我的数据库。Stringsql="SELECT*FROMmashWHERErecipe_id='"+id+"'";Cursordata=database.rawQuery(sql,null);如果这是第一次运行该Activity,该表将与id列一起存在,但不会有具有特定id的记录。我如何检查该特定记录是否存在,如果不存在,请添加它?我发现很多关于检查特定列是否存在的内容,但没有关于检查特定记录是否存在的内容。到目前为止,我已尝试获取id列索引并检查它是否返回-1,但由于某种原因它实际上返回了1。我可以在if语句中使用什么来验证尚未创建id列?

安卓 JNI : root-causing deadd00d (dvmAbort)

对许多StackOverflow问题的评论指出,故障地址deadd00d表示有意的VM中止。IDEBUG:signal11(SIGSEGV),code1(SEGV_MAPERR),faultaddrdeadd00d确实,当通过ndk-stack运行日志时,我看到堆栈帧的顶部解码为:Stackframe#00pc00050b0e/system/lib/libdvm.so(dvmAbort)然后评论说要更早地在您的日志中查找问题。我到底在寻找什么——是否有要搜索的特定标签或字符串?(也许是dalvikvm?)我翻阅了许多页的日志,但没有找到任何相关信息——这是正常的,还是应该紧接在故障之前

android - 加载 JNI 库的应用程序对象上的 Robolectric 坦克。我可以获得解决方法吗?

我的Android应用程序的Application对象加载了一个JNI库,而Robolectric似乎不喜欢那样。当我去运行我的测试Robolectric时,我得到了这个堆栈跟踪:java.lang.UnsatisfiedLinkError:nocperryinc-jniinjava.library.pathatjava.lang.ClassLoader.loadLibrary(ClassLoader.java:1758)atjava.lang.Runtime.loadLibrary0(Runtime.java:823)atjava.lang.System.loadLibrary(Sy

java - 对于放置在 Android 应用程序 Assets 文件夹中的文件,JNI C 代码中的 fopen 失败

我在android应用程序的assets文件夹中保存了一些文件。现在我编译该应用程序并获得apk。[当我提取apk时,我的文件在Assets文件夹中]现在我在移动设备上安装那个apk并且在该应用程序中有一些使用JNI接口(interface)的C编程代码。现在我在c编程中为该文件调用的fopen()失败了。fopen("myfile","r");我知道在安装apkandroid时将Assets文件复制到/data/data/com.packagename/something那么有谁知道那个路径所以我可以在fopen()中给出它或者是否有任何其他方法可以在C编程中打开该文件。如果我将这些

android - 火力地堡数据库 : Check if node has no children?

如何确定Firebase数据库节点是否没有子节点?似乎获取数据的唯一方法是使用监听器,并且它们仅在添加或删除某些内容时触发。换句话说,如果没有child,什么都不会开火。 最佳答案 您可以使用addValueEventListener,并且在onDataChange中您将有一些方法来检查没有child。addValueEventListener将起作用,因为对docs进行了编码Thismethodistriggeredoncewhenthelistenerisattachedandagaineverytimethedata,incl

Android JNI APK 打包

我已经实现了一个JNIandroid应用程序。此应用程序需要一些额外的“共享库”作为APK的一部分打包。使用Ecplise,我已将这些库添加到项目的“/libs/armeabi”文件夹中。但是,在启动应用程序时(通过集成调试器),我添加的“共享库”会从“armeabi”文件夹中删除。如何防止删除这些额外的库?如何确保APK中包含所需的额外SO? 最佳答案 您不需要自己将此库复制到libs文件夹。此工作应由ndk-build完成。这两个步骤应该足够了:在项目的根级别创建mylibs(您可以使用任何其他名称)文件夹。并将您的库放入此文件

android - JNI- java.lang.UnsatisfiedLinkError : Native method not found

我正在使用OpenCV开发一个Android项目。有些方法没有Java版本,所以我必须使用NDK才能在我的项目中使用它们。这是我第一次使用NDK,所以在搜索了一些示例之后,我编写了代码,在我的设备上运行它,并收到以下错误消息:07-0410:26:19.55521270-21270/com.example.MyTestE/AndroidRuntime﹕FATALEXCEPTION:mainjava.lang.UnsatisfiedLinkError:Nativemethodnotfound:com.example.MyTest.JNIlib.readImg:()Iatcom.examp

Android Assets 、C、JNI

如何使用JNI从C访问AndroidAssets,例如.txt文件?我正在尝试“file:///android_asset/myFile.txt”,并在本地“myFile.txt”中使用jni文件夹中的myFile.txt副本和C实现文件。 最佳答案 Assets的问题在于您不能将它们作为文件直接访问。这是因为Assets是直接从APK中读取的。安装时它们不会解压缩到给定的文件夹。从Android2.3开始,有一个CAPI来访问Assets。看看和assetManager中的字段.不过我从未使用过它,而且我不确定如果您不依赖nati

java - 在 Android 上通过 jni 将 byte[] 传递给 C 时出现问题

我在Java中有一个byte[],它报告其长度为256字节,我将其传递给C中的native函数。当我试图从这个数组中取出数据时,结果完全错误,当我打印出来时,它与我在将它传递给C之前打印出的数据不匹配。我尝试了几种访问数据的方法,包括GetByteArrayRegion和GetByteArrayElements,但似乎没有任何方法提供我期望的数据。当我调查这个时,我试图查看JNI认为jbyteArray的长度是什么GetArrayLength-它报告的长度为1079142960,远远超过我预计256字节。此外,每次调用该函数时值都不同,例如另一次GetArrayLength返回1079