在 "试图加载lib "中保持不变,并且永远不会返回。

 2023-01-20    289  

问题描述

我有一个由C ++编写的旧应用,我正在尝试将其移植到android,然后用Eclipse进行调试,但是该项目正在停止错误消息:

10-03 12:21:55.344:d/dalvikvm(15262):尝试加载lib/data/data/data/com.android.test/lib/lib/libtest.so 0x40effa48

在 "试图加载lib "中保持不变,并且永远不会返回。

该应用程序只是停止而无需提供任何其他消息.我不知道该如何继续.

推荐答案

我有同样的问题,但它是由此引起的错误

因此,只需从您的应用程序中删除ndk_toolchain_version = 4.7.

其他推荐答案

您必须在库中添加以下功能:

#include <jni.h>
jint JNI_OnLoad( JavaVM* vm, void* reserved )
{
    JNIEnv* jEnv = NULL;

if ( JNI_OK != ( *vm )->GetEnv( vm, (void**)&jEnv, JNI_VERSION_1_4 ) ){
    return -1;
}
return JNI_VERSION_1_4;

}

更新: jni_onload()的不存在不是问题…

您已经评论说您有很多全球发起者 – 考虑在JNI_ONLOAD()中执行此类全局初始化

签名:

/*
 * Class:     com_android_test_testLib
 * Method:    init
 * Signature: (II)V
 */
JNIEXPORT void JNICALL Java_com_android_test_testLib_init
  (JNIEnv *, jclass, jint, jint);

/*
 * Class:     com_android_test_testLib
 * Method:    uninit
 * Signature: ()V
 */
JNIEXPORT void JNICALL Java_com_android_test_testLib_uninit
  (JNIEnv *, jclass);

/*
 * Class:     com_android_test_testLib
 * Method:    touch
 * Signature: (IIII)V
 */
JNIEXPORT void JNICALL Java_com_android_test_testLib_touch
  (JNIEnv *, jclass, jint, jint, jint, jint);

/*
 * Class:     com_android_test_testLib
 * Method:    update
 * Signature: ()V
 */
JNIEXPORT void JNICALL Java_com_android_test_testLib_update
  (JNIEnv *, jclass);

以上所述是小编给大家介绍的在 "试图加载lib "中保持不变,并且永远不会返回。,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对77isp云服务器技术网的支持!

原文链接:https://77isp.com/post/26158.html

=========================================

https://77isp.com/ 为 “云服务器技术网” 唯一官方服务平台,请勿相信其他任何渠道。