如何解决在框架中使用Android NDK
您好,我一直在尝试在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 举报,一经查实,本站将立刻删除。