2016-11-17 2 views
1

Я пытаюсь расширить GoogleApiClient.ConnectionCallbacks(), но продолжаю получать сообщение об ошибкеClassNotFoundException в NativeScript с помощью .extend()

`java.lang.RuntimeException: Unable to start activity ComponentInfo{org.nativescript.sampleGroceries/com.tns.NativeScriptActivity}: com.tns.NativeScriptException: Calling js method onCreate failed

Error calling module function

Error: java.lang.ClassNotFoundException: com.google.android.gms.common.api.GoogleApiClient_ConnectionCallbacks java.lang.Class.classForName(Native Method) java.lang.Class.forName(Class.java:324) java.lang.Class.forName(Class.java:285) com.tns.DexFactory.generateDex(DexFactory.java:262) com.tns.DexFactory.resolveClass(DexFactory.java:120) com.tns.ClassResolver.resolveClass(ClassResolver.java:45)

`

Моего соответствующего кода является

var GoogleApiClient = com.google.android.gms.common.api.GoogleApiClient; 
var myConnectionCallbacks = GoogleApiClient.ConnectionCallbacks.extend({ 
onConnected: function(connectionHint){ 
    var MessageListener = MessageListener.extend({ 
      onFound: function(message){ 
       Log.d("MESSAGE", "Found message :) "); 
      }, 
      onLost: function(message){ 
       Log.d("MESSAGE", "Lost message :("); 
      } 


    }); 
    var mMessageListener = new MessageListener(); 

}, 
onConnectionSuspended: function(){} 

}); 
    var MessagesOptionsBuilder = new com.google.android.gms.nearby.messages.MessagesOptions.Builder().setPermissions(NearbyPermissions.BLE).build(); 
    var test = new GoogleApiClient.Builder(context).addApi(Nearby.MESSAGES_API, MessagesOptionsBuilder); 
    test.addConnectionCallbacks(new myConnectionCallbacks(this)); 

Может, я неправильно понял Документы? https://docs.nativescript.org/runtimes/android/generator/extend-class-interface

Редактировать: Почему в журнале ошибок после GoogleApiClient есть символ подчеркивания?

Любые предложения, что я делаю неправильно?

ответ

2

Проблема заключается в том, что вы пытаетесь расширить интерфейс, который является неправильным. Подробнее ->https://docs.nativescript.org/runtimes/android/generator/extend-class-interface#interfaces

var MessagesOptionsBuilder = new com.google.android.gms.nearby.messages.MessagesOptions.Builder().setPermissions(NearbyPermissions.BLE).build(); 
var test = new GoogleApiClient.Builder(context).addApi(Nearby.MESSAGES_API, MessagesOptionsBuilder); 
test.addConnectionCallbacks(new com.google.android.gms.common.api.GoogleApiClient.ConnectionCallbacks({ 
    onConnected: function (connectionHint) { 
     var MessageListener = MessageListener.extend({ 
      onFound: function (message) { 
       console.log(Found message :) "); 
      }, 
      onLost: function (message) { 
       console.log("Lost message :("); 
      } 


     }); 
     var mMessageListener = new MessageListener(); 

    }, 
    onConnectionSuspended: function() { } 

})); 

и просто упаковывают в MessageListener является интерфейс просто удалить .extend

var MessagesOptionsBuilder = new com.google.android.gms.nearby.messages.MessagesOptions.Builder().setPermissions(NearbyPermissions.BLE).build(); 
var test = new GoogleApiClient.Builder(context).addApi(Nearby.MESSAGES_API, MessagesOptionsBuilder); 
test.addConnectionCallbacks(new com.google.android.gms.common.api.GoogleApiClient.ConnectionCallbacks({ 
    onConnected: function (connectionHint) { 
     new MessageListener({ 
      onFound: function (message) { 
       console.log(Found message :) "); 
      }, 
      onLost: function (message) { 
       console.log("Lost message :("); 
      } 


     }); 

    }, 
    onConnectionSuspended: function() { } 

})); 
+1

Я должен научиться читать, спасибо! :) –

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