diaoying
Softwaring
采纳率66.7%
2015-04-18 07:43

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

10
已采纳

现碰到的问题如下: 在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编译的库的问题

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

3条回答

  • Ec_boy_HL Ec_boy_HL 6年前
    缺了
    static{
        System.loadLibrary("MeiaPush ");
    }
    吧
    
    点赞 评论 复制链接分享
  • userqiaohaibin mqiaohaibin 6年前

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

    点赞 1 评论 复制链接分享
  • diaoying Softwaring 6年前

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

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

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

    点赞 评论 复制链接分享

相关推荐