2015-06-20 4 views
3

Я новичок в программировании для Android, и я впервые использую PubNub. Я включил файл .jar в lib. Я также импортировал его.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') 
} 

Пожалуйста, дайте мне знать, как использовать о.е. bnub, если я полностью сделаю это неправильно .. т. е.

ответ

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

У вас есть проблема. Pubnub использует свой собственный обратный вызов. Остальная часть вашего кода выглядит неплохо, но причина, по которой она говорит, что ее невозможно решить, заключается в том, что нет реализации подписки, которая принимает String и javax.security.auth.callback.Callback.

Удалите этот импорт из своего кода, и все должно работать с тех пор, как вы включили com.pubnub.api.*. Если вы хотели бы явно включить его, то оператор импорта выглядит следующим образом:

import com.pubnub.api.Callback; 

Еще одна ошибка, которая вызвала у меня много проблем, когда я начинал с PubNub на андроид забывает запрашивать соответствующие разрешения интернет. Убедитесь, что следующие строки в манифесте после <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" /> 

Кроме того, я считаю, ваш Gradle импорт должен быть хорошо, если Android студия распознает функцию. Чтобы упростить работу в будущем, не стесняйтесь включать размещенную библиотеку PubNub, используя следующую зависимость.

compile 'com.pubnub:pubnub:3.7.2' 

Удачи, дайте мне знать, если у вас есть дополнительные вопросы!

Смежные вопросы