android - 附近连接的Android应用程序问题
问题描述
我想了解更多关于应用程序编程中的 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)
有人知道问题是什么吗?
最好的祝愿托尔斯滕
解决方案
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
推荐阅读
- javascript - 从另一个数组中查找不匹配的唯一数组对
- c - 如何在 X11/Xlib 的根窗口中读取 KeyPress 和 ButtonPress 事件?
- c++ - 使用 glm 的飞行相机表现得很奇怪
- r - 检查函数参数的值是否与指定的可能性匹配的最佳方法是什么?
- opendj - 多主 ldap 节点如何处理并发更新?
- javascript - 如何进行大量 API 调用
- php - 如何以以下格式在 PHP 或 laravel 中打印 TD?
- python - 在jupyter中导入模块并手动执行函数时,单元格返回“错误模块没有属性”
- javascript - 如何在 vanilla js、nest.js 中使用 typescript typeorm?
- cdi - 如何刷新并发送请求以使用微配置响应式消息获取数据