问题描述
您好,我一直在尝试在Android Keyguard(frameworks / base / packages / SystemUI)中调用JNI库。我可以在Android设置中执行此操作,但现在需要在Keyguard中调用它。当前,正在创建共享对象。它位于/ system / lib64中(我在android设置中使用的一个也位于32位lib中)。我应该使用它时不会被调用。 logcat上没有显示任何错误,表明缺少jni
/jni
文件夹中的我的Android.mk文件。
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MULTILIB := both
LOCAL_MODULE := liblock-jni
LOCAL_SRC_FILES := lock-jni.c
LOCAL_C_INCLUDES +=$(JNI_H_INCLUDE)
LOCAL_CFLAGS += -O0 -g3
include $(BUILD_SHARED_LIBRARY)
这是我的函数中Java类的声明。
JNIEXPORT jstring JNICALL Java_com_android_keyguard_LockJni_stringFromJNI(JNIEnv *env,jobject thisObj,jstring inJNIStr) {
我在jni类中定义了这样的方法来调用它。这是位于
package com.android.keyguard;
import android.app.Activity;
import android.widget.TextView;
import android.os.Bundle;
import android.util.Log;
public class LockJni
{
public native String stringFromJNI(String param);
static {
Log.d( "library loaded:","hello");
System.loadLibrary("lock-jni");
}
public LockJni(){
}
}
感谢您的帮助!
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)