草庐IT

hello-jni

全部标签

android - JNI 在应用程序中检测到错误 : JNI GetMethodID called with pending exception java. lang.ClassNotFoundException:没有找到类

我收到以下错误:JNIDETECTEDERRORINAPPLICATION:JNIGetMethodIDcalledwithpendingexceptionjava.lang.ClassNotFoundException:Didn'tfindclass"package.name.class"onpath:DexPathList[[zipfile"/system/framework/sample.jar"],nativeLibraryDirectories=[/vendor/lib,/system/lib]]JNIDETECTEDERRORINAPPLICATION:JNIGetMeth

java - 从 JNI 代码中阻止对话框

我正在编写一个基本上是250KJNI包装器的应用程序。JNI(一个游戏引擎)有像handle_penUp(intx,inty)这样的API。有时它需要从handle_penUp()内部查询用户(通过回调到Java代码),所以我用来实现查询的对话框必须阻塞。我明白执行的主线程不能阻塞。因此,我生成了第二个线程,该线程进行所有可能导致需要阻塞的回调的JNI调用。在第二个线程中,当我需要建立一个阻塞对话框时,我调用startActivityForResult(),然后在信号量上调用acquire()。当在主线程上调用onActivityResult()时,它会在同一个信号量上调用releas

android - gdb 在 android 上调试 native (不是 jni)程序

我无法使用NDK工具链调试native程序。以下是我的详细步骤和输出。环境设置:NDK_ROOT=/opt/android/ndkSYSROOT=$NDK_ROOT/platforms/android-8/arch-armTOOLCHAIN=$NDK_ROOT/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/binPATH=$TOOLCHAIN:$NDK_ROOT:$PATH来源:hello.c1#include23intmain(){4printf("HelloWorld!\n");5return0;6}由NDK提供

java - 如何从 C++/JNI 调用带有 Android 上下文参数的 Java 方法

我正在尝试通过Android上的C++/JNI调用Java类。更具体地说,我正在尝试调用此类的构造函数,该构造函数将Android上下文作为参数。如果我的构造函数没有参数,我可以成功调用,但是当我将必要的Context作为参数时,我不知道我的JNI签名应该是什么样子,并且怀疑这是否可能,因为我没有访问该上下文对象。所以,我的问题是,是否可以调用将Android上下文作为其唯一参数的Java类的构造函数?如果是这样,如何?如果没有,是否有解决方法,因为我需要上下文来访问某些AndroidAPI类。 最佳答案 我不相信你所说的方式是可能

java - 在 Mac OSX 上为 OpenCV 编译 Android JNI

请耐心等待-这是一个很长的描述,但我想包括所有细节。我正在尝试使用androidNDK和JNI来构建OpenCVAndroid应用程序。我正在按照本教程安装所有内容:http://www.stanford.edu/class/ee368/Android/Tutorial-2-OpenCV-for-Android-Setup-Macintosh-API8.pdf以下安装就好了:/usr/bin/g++/usr/local/bin/swig/usr/bin/cmake/usr/bin/make/Developer/pcre-8.32/我的.bashrc文件的内容:exportNDK=/Us

android - 在 JNI/OpenGL ES 加载代码期间,非常规和狡猾的 Android 崩溃

赏金因为这对我来说是一个重要的问题,所以我一直悬赏。我不是在寻找确切的答案——任何能让我解决这个问题的答案都会得到赏金。请确保您已经看到下面的编辑。编辑:我已经设法在Gdb死机时捕获它的崩溃(通过“adbshellsetpropdebug.db.uid32767”),并注意到这与thispost中提到的问题完全相同。在Google网上论坛上。显示的回溯与我的崩溃线程相同(精确地址除外)。我承认,我不是调试工具向导,所以如果您对我应该寻找什么有任何想法,请告诉我。快速而肮脏的破败我删除了大部分相当大的应用程序代码,以便应用程序执行以下操作:通过JNI包装器(来自C++-->Java)加载

android - 完全使用 native 代码(无 JNI)从后台线程更新 UI?

我正在编写一个在后台线程中执行大量处理的Android应用程序。计算是使用C++在native代码中执行的。我想在计算期间使用部分结果更新UI。我可以通过JNI做到这一点,即在java中设置对UI对象的引用,然后通过JNI从native代码调用该对象的方法。我正在寻找一种在渲染部分没有任何JNI调用的更有效的解决方案(基本设置和激活入口点必须在Java中)。是否可以在不使用JNI的情况下(仅在渲染部分)完全在native代码中将执行线程从后台更改为UI?感谢您的回答。非常感激。编辑:我正在考虑使用OpenGL在我的View中呈现计算内容(某种视频帧)。在那种情况下,我可能想使用eglS

java - 使用 JNI 从 C++ 调用 JAVA 方法,无参数

请耐心等待,我是一名iPhone开发人员,而整个android这让我有点困惑。我有一些从cocos2d-xCCMenuItem调用的c++方法。因此,根据文档,我无法发送任何参数。我需要用android浏览器打开一个url,这将要求我调用一个JAVA函数来启动一个新的intent。我知道我需要创建一个虚拟机,但是下面的代码给我错误:jni/../../Classes/OptionsScene.cpp:184:error:'JNI_CreateJavaVM'wasnotdeclaredinthisscope我在看这个帖子:Callingajavamethodfromc++inAndroi

第一个“hello Android”程序

1、首先安装Androidstudio(跳过)AndroidStudio是由Google推出的官方集成开发环境(IDE),专门用于Android应用程序的开发。它是基于JetBrains的IntelliJIDEAIDE构建的,提供了丰富的功能和工具,方便开发者创建、测试、调试和发布Android应用。2、创建第一个项目在创建新项目时Androidstudio会提供各种模板,不同的模板会为用户提供初始代码,帮助快速上手选择EmptyComposeActivity模板,这个模板是用于创建一些简单项目。选择创建后需要耐心等待一段时间。Androidstudio会为用户展示它的最新功能的新动态,可以忽

java - 尝试访问 EXTRA_ADDRESS_BOOK_INDEX 字段时出现 JNI 错误

我正在尝试访问EXTRA_ADDRESS_BOOK_INDEX使用JNI的常量:JNIEXPORTjintJNICALLJNI_OnLoad(JavaVM*vm,void*reserved){JNIEnv*env=nullptr;vm->GetEnv(reinterpret_cast(&env),JNI_VERSION_1_6);jclassclazz=env->FindClass("android/provider/ContactsContract$Data");jfieldIDfieldID=env->GetStaticFieldID(clazz,"EXTRA_ADDRESS_BO