【问题标题】:Pusher not working in android 4.4.4Pusher 在 android 4.4.4 中不起作用
【发布时间】:2016-12-27 12:09:42
【问题描述】:

我正在尝试使用 pusher-java-client1.2.1 库连接到 android 中的 pusher,我的连接代码如下所示

 if(Utils.isOnline(mcontext)) {
        PusherOptions pOptions = new PusherOptions();
        pOptions.setAuthorizer(new HttpAuthorizer(Constants.PUSHER_AUTH_SRC_URL + "/auth.php"));
        pusher = new Pusher(Constants.PUSHER_KEY, pOptions);
        pusher.connect();

        channel = pusher.subscribe(Utils.getPref(mcontext, "channel_name", ""));
        Utils.setPref(mcontext, "OtherUserId", "");
    }else{
        Utils.setCustomToast(mcontext,Constants.NO_INTERNET,false);
    }

我的这段代码在 android 5.0 及以上版本中运行良好,但在 android 4.4 应用程序崩溃并出现以下 logcat 输出

java.lang.NoClassDefFoundError: com.pusher.client.util.Factory
          at com.pusher.client.Pusher.<init>(Pusher.java:83)
          at com.driversafe.chat.MessageStatusApiCalling.pusherConnect(MessageStatusApiCalling.java:62)
          at com.driversafe.chat.ApplicationLifeCycleHandler.onActivityCreated(ApplicationLifeCycleHandler.java:27)
          at android.app.Application.dispatchActivityCreated(Application.java:189)
          at android.app.Activity.onCreate(Activity.java:903)
          at android.support.v4.app.BaseFragmentActivityDonut.onCreate(BaseFragmentActivityDonut.java:39)
          at android.support.v4.app.FragmentActivity.onCreate(FragmentActivity.java:298)
          at android.support.v7.app.AppCompatActivity.onCreate(AppCompatActivity.java:84)
          at com.driversafe.SplashActivity.onCreate(SplashActivity.java:57)
          at android.app.Activity.performCreate(Activity.java:5231)
          at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
          at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2159)
          at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2245)
          at android.app.ActivityThread.access$800(ActivityThread.java:135)
          at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196)
          at android.os.Handler.dispatchMessage(Handler.java:102)
          at android.os.Looper.loop(Looper.java:136)
          at android.app.ActivityThread.main(ActivityThread.java:5017)
          at java.lang.reflect.Method.invokeNative(Native Method)
          at java.lang.reflect.Method.invoke(Method.java:515)
          at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)
          at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
          at dalvik.system.NativeStart.main(Native Method)

任何人都可以建议我解决这个问题

【问题讨论】:

  • 这对我来说似乎是 MultiDex 问题。您的应用程序的build.gradle 中有multiDexEnabled true 行,并且您的Application 类没有扩展MultiDexApplication?顺便说一句,pusher-java-client 的最新版本是 1.4.0
  • @zmarkan 我的应用已经启用了 multidex

标签: android pusher


【解决方案1】:

问题出在依赖项中,我使用了 google-play-service google play 服务和 pusher-java-client 是冲突的,所以我通过使用特定依赖项 google-play-service-gcm 解决了问题

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多