草庐IT

concrypt_openjdk_jni

全部标签

java - Android Studio - OpenJDK 1.8 与 Oracle JDK

Androidstudio曾经提示使用OpenJDK而推荐OracleJDK。然而,对于最新的AndroidStudio,该提示已经消失(可能是由于两家公司之间的法律纠纷)。我今天安装了OracleJDK1.8.0.92和AndroidStudio2.1.1似乎运行速度更快,明显更快。知道AndroidStudio在Java1.8以及OpenJDK与OracleJDK方面的当前状态。谢谢 最佳答案 openJDK有一个主要优势,那就是您可以将ALPNjar添加到bootclasspath中,OrcaleJDK目前不支持这一点。当与支

Android和JNI实时时钟

我在使用迷你Android应用程序以及在C(JNI)函数中使用实时时钟信号时遇到问题。似乎AndroidUI不喜欢来自C函数中实例化的定时器的实时信号。在下面的PoC中,计时器每秒触发信号5次,如果在UI更新时触发信号,应用程序会崩溃。如果我不启动计时器=>不会崩溃如果我不在UI上放任何东西=>不会崩溃我写了这个小小的PoC来证明这种行为。Java部分只是调用JNI函数并在屏幕上放置一个按钮。publicclassMainActivityextendsAppCompatActivity{Buttonbt;static{System.loadLibrary("testtimer-jni"

java - 如何在不崩溃的情况下处理从 jni 对 AudioTrack 的调用?

我试图从jni回调写入AudioTrack,我收到信号7(SIGBUS),故障地址00000000。我查看了odroid的Wolf3D示例他们似乎使用android.os.Handler来发布一个Runnable,它将在正确的线程上下文中进行更新。我也尝试过AttachCurrentThread,但在这种情况下我也失败了。它可以在从构造函数运行时播放声音,即使我将它包装在一个线程中,然后将它发布到处理程序。当我通过jni的回调执行“相同”操作时,它失败了。我假设我正在违反一些规则,但我一直无法弄清楚它们是什么。到目前为止,我还没有在SO上找到答案。所以我想知道是否有人知道应该怎么做。编

Android.mk 在路径中通配额外的 'jni'?

在这个答案的帮助下,我尝试在Android.mk中使用通配符https://stackoverflow.com/a/8459242/1039175但是获取报错:ma​​ke:没有制定目标jni/jni/abyss_engine.c'的规则,obj/local/armeabi/objs-debug/AbyssEngine/jni/abyss_engine.o'-这个错误意味着没有找到源文件,这是很自然的,因为jni文件夹中没有jni子文件夹路径中哪里有额外的jni,为什么?我的源文件只在jni文件夹中,没有任何子文件夹,如何修复?我的Android.mkLOCAL_PATH:=$(调用我

java - JNI : Calling GetStaticMethodID blows up

我正在编写一些代码来获得生成的线程以从C++调用静态Java方法。如果放置在来自Java的native调用中,调用该方法的位可以正常工作,但不能来自带有附加JNIEnv的线程。我设置了一个JavaVM*如下:jintJNI_OnLoad(JavaVM*jvm,void*reserved){LOGI("SettingJavaVirtualMachine");ThreadJNIEnvironment::javaVM=jvm;returnJNI_VERSION_1_6;}这会被调用。然后我生成另一个线程,并从这个线程执行以下操作:JNIEnv*env;jintret=ThreadJNIEnv

Android Activity 生命周期和 JNI native 代码生命周期

我有一个带有native代码的简单应用程序。即一个Activity加上native代码。当Activity进入后台时,我会保持native代码运行以进行一些处理。问题是当Activity被OS终止时(由于资源不足),JNI代码似乎不知道Java领域发生了什么并且仍在执行其工作,因此浪费了资源。为什么Android只杀死Activity而不是整个进程?在这种情况下,native代码如何知道Activity已被终止?OnDestroy()可能不会被调用。 最佳答案 安Activity在Android应用程序中,文档中将其描述为Anact

java - JNI : Can not get array length

我遇到了下一个问题:我不能用C代码中的byte[](jbyteArray)做任何事情。在JNI中使用数组的所有函数都会导致JNIDETECTEDERRORINAPPLICATION:jarrayargumenthasnon-arraytype。我的代码有什么问题?C:#include#includestaticjstringconvertToHex(JNIEnv*env,jbyteArrayarray){intlen=(*env)->GetArrayLength(env,array);//causeanerror;returnNULL;}staticJNINativeMethodmet

java - AndroidRuntime Caused by : java. lang.unsatisfiedLinkError: 无法加载 tfp_jni: findLibrary 返回 null

所以,看起来有很多像我的问题,但不确定是否与我的问题有关。好的。我有一个使用SDK作为引用库的Android项目。SDK包含C++,因此我使用的是android-ndk-r9库。我在我的Android项目中引用的SDK是一个JNI库(Oooooo-可怕的东西)。哦,是的,不要让我忘记提及armeabi-v7a(这似乎是另一个可怕的主题)。执行此行时出现我的错误:System.loadLibrary("tfp_jni");tfp_jni其实就是我SDK库项目libs文件夹下armeabi-v7a文件夹下的一个libtfp_jni.so文件。该SDK库项目包含一个Android.mk文件。

java - 如何调试: JNI DETECTED ERROR IN APPLICATION: use of invalid jobject

我正在处理一个XamarinAndroid项目,我收到以下错误(完整日志here)11-0708:28:09.067:A/art(7164):art/runtime/java_vm_ext.cc:410]JNIDETECTEDERRORINAPPLICATION:useofinvalidjobject0xd4fd90e011-0708:28:09.067:A/art(7164):art/runtime/java_vm_ext.cc:410]"Thread-1973"prio=10tid=26Runnable11-0708:28:09.067:A/art(7164):art/runtim

android - 未找到 JNI_OnLoad

我开始了android应用程序开发并遵循了本教程:http://mindtherobot.com/blog/452/android-beginners-ndk-setup-step-by-step/但应用程序没有工作。我调试它并且日志猫显示此消息:找不到JNI_Onload..我该如何解决这个问题?谢谢 最佳答案 JNI_OnLoad函数的主要目的是注册所有native方法。这是推荐的方法,但不是唯一的方法。因此,提供JNI_OnLoad函数是可选的。因为它用于注册所有本地方法,所以它可以在实际使用该方法之前发现java本地方法声明