Android Service类中调用NDK编译的库的问题

Android 码拜 7年前 (2015-05-10) 672次浏览 0个评论
 

现碰到的问题如下:
在Java层写了一个类代码如下:
 

public class MeiaPush {
	    public native int meia_push_init ();
	    public native int meia_push_set_client_info (String cid, String pwd, String type, String token);
	    public native int meia_push_get_alarmlist (Object param, int count);
	    public native int meia_push_exit ();
	    
	    public int MeiaPushInit ()
	    {
	    	Log.e ("Yan", "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~");
	    	meia_push_init ();
	    	return meia_push_set_client_info ("00000000001", "123456", "android", "yan_yan");
	    }
}

JNI层也实现了。  
在其它类中调用MeiaPushInit 这个函数没有问题, 
但是在Service类中调用就会出现“java.lang.unsatisfiedlinkerror native method not found”
请问 为什么会出现这个问题, 如何解决。 Service类中和其它类调用JNI函数有什么区别么?
谢谢!

现在问题已解决。 要结帖了, 回复有分哟!

解决方式如下:
需要在Service类中加载一下库。 
static{
    System.loadLibrary(“MeiaPush “);
}

只在非Service类中加载是不行的。

100分
顶你,这个是正解

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明Android Service类中调用NDK编译的库的问题
喜欢 (0)
[1034331897@qq.com]
分享 (0)

文章评论已关闭!