2015-06-20 49 views
3

我是新來的Android編程,我使用PubNub首次。 我在lib中包含了.jar文件。我也導入了它。PubNub:無法解析方法訂閱

我下面在這裏給出的步驟 - http://www.pubnub.com/docs/android-java/pubnub-java-sdk#copy_and_paste_examples

,但我收到此錯誤信息。 - 「無法解析方法」訂閱(java.lang.String,匿名javax.security.auth.callback.Callback)'

我正在使用Android Studio,並且我將整個代碼放在mainActivity中。不知道哪兒了pubnub代碼去

我的主要活動 -

package com.example....<hidden>; 

import android.support.v7.app.ActionBarActivity; 
import android.os.Bundle; 
import android.view.Menu; 
import android.view.MenuItem; 
import android.view.View; 
import android.widget.TextView; 
import com.parse.Parse; 
import com.parse.ParseObject; 
import com.pubnub.api.Pubnub; 
import com.pubnub.api.PubnubError; 
import com.pubnub.api.PubnubException; 
import com.pubnub.api.*; 
    import org.json.*; 

    import javax.security.auth.callback.Callback; 

    public class MainActivity extends ActionBarActivity { 
private TextView testing; 
Pubnub pubnub = new Pubnub("<mypubkey>", "<mysubkey>"); 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main) 

    /* Subscribe to the demo_tutorial channel */ 
    try { 
     pubnub.subscribe("demo_tutorial", new Callback() { 
      public void successCallback(String channel, Object message) { 
       System.out.println(message); 
      } 

      public void errorCallback(String channel, PubnubError error) { 
       System.out.println(error.getErrorString()); 
      } 
     }); 
    } catch (PubnubException e) { 
     e.printStackTrace(); 
    } 

} 

我gradle這個 -

dependencies { 
compile fileTree(dir: 'libs', include: ['*.jar']) 
compile 'com.android.support:appcompat-v7:22.2.0' 
compile fileTree(dir: 'libs', include: 'Parse-*.jar') 
compile fileTree(dir: 'libs', include: 'Pubnub-*.jar') 
} 

請讓我知道如何使用PU bnub,如果我完全是這樣做的錯誤..即

回答

4
import javax.security.auth.callback.Callback; 

這是你的問題。 Pubnub使用自己的回調。你的代碼的其餘部分看起來不錯,但它說,它不能得到解決的原因是因爲沒有訂閱這需要在Stringjavax.security.auth.callback.Callback實現。

刪除您的代碼,進口和一切都應該工作,因爲你已經包括com.pubnub.api.*。如果你想明確地包含它,import語句如下:

import com.pubnub.api.Callback; 

一說給我造成了很大的麻煩,當我與PubNub在Android上啓動其他錯誤是忘記正確的請求互聯網權限。請確保以下線在<manifest>標籤後您的清單和<application>標記之前:

<uses-permission android:name="android.permission.INTERNET" /> 
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> 
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" /> 

而且,我相信,如果Android的工作室識別功能的gradle的進口應該沒問題。爲了使將來更容易,請使用以下依賴項來隨意包含PubNub託管的庫。

compile 'com.pubnub:pubnub:3.7.2' 

祝你好運,讓我知道如果你有任何進一步的問題!