Проблемы с приложением Android при ближайшем подключении - PullRequest
0 голосов
/ 22 мая 2018

Я хотел бы узнать больше о Nearby в программировании приложений.Для этого я скачал этот код на GitHub https://github.com/PaulTR/NearbyConnections2.0Sample. Моя проблема в том, что когда я хочу отправить сообщение, мобильное приложение вылетает.Похоже, что устройство Android Thing на самом деле не подключено к телефону.

Отказ:

E/AndroidRuntime: FATAL EXCEPTION: main
                  Process: com.tutsplus.nearbyconnections2, PID: 10951
                  java.lang.IllegalStateException: Could not execute method for android:onClick
                      at android.view.View$DeclaredOnClickListener.onClick(View.java:4732)
                      at android.view.View.performClick(View.java:5647)
                      at android.view.View$PerformClick.run(View.java:22479)
                      at android.os.Handler.handleCallback(Handler.java:761)
                      at android.os.Handler.dispatchMessage(Handler.java:98)
                      at android.os.Looper.loop(Looper.java:156)
                      at android.app.ActivityThread.main(ActivityThread.java:6623)
                      at java.lang.reflect.Method.invoke(Native Method)
                      at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:942)
                      at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:832)
                   Caused by: java.lang.reflect.InvocationTargetException
                      at java.lang.reflect.Method.invoke(Native Method)
                      at android.view.View$DeclaredOnClickListener.onClick(View.java:4727)
                      at android.view.View.performClick(View.java:5647) 
                      at android.view.View$PerformClick.run(View.java:22479) 
                      at android.os.Handler.handleCallback(Handler.java:761) 
                      at android.os.Handler.dispatchMessage(Handler.java:98) 
                      at android.os.Looper.loop(Looper.java:156) 
                      at android.app.ActivityThread.main(ActivityThread.java:6623) 
                      at java.lang.reflect.Method.invoke(Native Method) 
                      at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:942) 
                      at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:832) 
                   Caused by: java.lang.IllegalStateException: GoogleApiClient is not connected yet.
                      at com.google.android.gms.common.api.internal.zzbc.zze(Unknown Source)
                      at com.google.android.gms.common.api.internal.zzbl.zze(Unknown Source)
                      at com.google.android.gms.common.api.internal.zzbd.zze(Unknown Source)
                      at com.google.android.gms.internal.zzcnr.sendPayload(Unknown Source)
                      at com.tutsplus.nearbyconnections2.MainActivity.sendPayload(MainActivity.java:122)
                      at java.lang.reflect.Method.invoke(Native Method) 
                      at android.view.View$DeclaredOnClickListener.onClick(View.java:4727) 
                      at android.view.View.performClick(View.java:5647) 
                      at android.view.View$PerformClick.run(View.java:22479) 
                      at android.os.Handler.handleCallback(Handler.java:761) 
                      at android.os.Handler.dispatchMessage(Handler.java:98) 
                      at android.os.Looper.loop(Looper.java:156) 
                      at android.app.ActivityThread.main(ActivityThread.java:6623) 
                      at java.lang.reflect.Method.invoke(Native Method) 
                      at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:942) 
                      at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:832) 

Кто-нибудь имел представление, в чем проблема?

С наилучшими пожеланиями, Торстен

1 Ответ

0 голосов
/ 22 мая 2018
private void setGoogleApiClient() {
    if (googleApiClient != null)
        return;
    googleApiClient = new GoogleApiClient.Builder(this)
            .addConnectionCallbacks(this)
            .addOnConnectionFailedListener(this)
            .addApi(LocationServices.API)
            .build();
    googleApiClient.connect();
}

Реализуя GoogleApiClient.ConnectionCallbacks и GoogleApiClient.OnConnectionFailedListener, вы сможете обнаружить: GoogleApiClient успешно подключено или по какой-то причине не удалось подключиться.Кроме того, перед тем как выполнить действие, чтобы избежать возможного сбоя, вы можете просто снова проверить, подключено GoogleApiClient или нет:

if (!googleApiClient.isConnected())
            googleApiClient.connect();
else
// perform action
...