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

问题描述

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

现碰到的问题如下: 在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函数有什么区别么?
谢谢!

这是帖子地址:Android Service类中调用NDK编译的库的问题

解决方案

缺了
static{
    System.loadLibrary("MeiaPush ");
}
吧

解决方案二:

MeiaPush不是Service类。
我记忆中,JNI里面需要一个参数是Context类。MeiaPush对象不是Context的子类对象。

解决方案三:

问题描述如下:
我在service类中开了一个线程, 然后在线程中写了如下代码:

 intent = new Intent (getBaseContext (), MeiaAlarmDetail.class);
Bundle bundle = new Bundle();
bundle.putString("DevID", alarm_info.DevID);
intent.putExtras (bundle);

但是在MeiaAlarmDetail.class这个类中, 去调用getExtras, 返回值却是null。

时间: 2025-01-31 05:41:31

service-Android Service类中调用NDK编译的库的问题的相关文章

如何在非action的普通java类中调用service和dao来操作数据库

问题描述 如何在非action的普通java类中调用service和dao来操作数据库 web程序用的框架是SSH的,在spring.xml中通过方式自动扫描service和dao,现有一个后台消息处理类,要在该类调用其他service和dao进行一些业务和数据库的操作,使用@Autowired private BaseDaoI baseDao;引用dao,在调用时报空指针错误,请教大神们该怎么解决. 解决方案 你所谓的"后台消息处理类"也的用注解标注它是一个Bean才行啊 解决方案二

使用Android Studio自带的NDK编译JNI

/********************************************************************************** * 使用Android Studio自带的NDK编译JNI * 说明: * 省得自己另外去下载NDK,编译JNI,麻烦. * * 2017-4-30 深圳 龙华民治樟坑村 曾剑锋 ****************************************************************************

如何在类中调用窗体后台中的方法

最近在做p2p聊天室:遇到了一个问题,就是在其他类中如何让窗体控件显示内容,可能大家有其他更好的方法,但是在这里我简单介绍下我找了很久才知道的方法-_-! 例如我想在窗体中让listview控件显示内容,但是我在其他类中是没办法直接实现的,这时我就在窗体类中写可以实现的方法,然后在其他类中调用就行了,但是调用之前我们需要做点事情. 本栏目更多精彩内容:http://www.bianceng.cnhttp://www.bianceng.cn/Programming/net/ 首先现在FormSev

ios-在继承类中调用方法报错

问题描述 在继承类中调用方法报错 有两个类A和B.在A类中: @interface A : B 在B类中,得到如下代码: self.navigationItem.rightBarButtonItem = [UIBarButtonItem barItemWithImage:[UIImage imageNamed:@""Add-button-normal""] highlightedImage:[UIImage imageNamed:@""Add-b

工具类中调用dao层的方法,spring配置如何写

问题描述 工具类中调用dao层的方法,spring配置如何写 private Set readSensitiveWord() { Set set = new HashSet(); List list = sensitiveDao.findSensitive(); if(list.size()>0){ for(Sensitive s : list){ set.add(s); } } return set; } 在这个方法中我要调用dao层的方法findSensitive().sensitiveDa

matchtample-在类中调用 opencv 的matchTample函数时,出现错误,求大神指点

问题描述 在类中调用 opencv 的matchTample函数时,出现错误,求大神指点 上图的代码出现在我的LightDetect类的一个类函数里,但是我新建一个工程,直接在main函数里调用matchTample是没问题的.是不是因为在类函数里不能分配太多内存?希望各位大神多多指点 解决方案 http://www.pudn.com/downloads635/sourcecode/graph/opencv/detail2575751.html

android在程序中调用另一个apk行不行?

问题描述 android在程序中调用另一个apk行不行? android在程序中调用另一个apk行不行?如果行,请问怎么实现? 解决方案 参考:http://www.cnblogs.com/winxiang/archive/2012/05/04/2482883.html 解决方案二: http://www.cnblogs.com/winxiang/archive/2012/05/04/2482883.html 解决方案三: 可以,看你想实现什么功能了. 解决方案四: 这个很容易 利用Intent

有一个类中的函数是protected的,我需要在另外一个类中调用这个函数如何实现

问题描述 有一个类中的函数是protected的,我需要在另外一个类中调用这个函数如何实现 一个类中的函数的修饰符为protected protected: BOOL RegisterWindowClass(); LRESULT SendMessageToParent(int nRow, int nCol, int nMessage); BOOL InvalidateCellRect(const CCellID& cell); 我需要在另外一个对话框类中访问这个类,请问如何实现谢谢了.

如何在其他类中调用destroyApp退出游戏

问题描述 如何在其他类中调用destroyApp退出游戏?当我按退出时游戏不关闭,但是当我用手机模拟器关闭游戏时也是调用destroyApp退出游戏的,为什么我在其他类调用它就不会关闭模拟器了?当我点击退出时还出现以下异常:java.lang.NullPointerExceptionatcom.mm.game.Main.commandAction(+48)atjavax.microedition.lcdui.Display$DisplayAccessor.commandAction(+282)a