无法在主线程上启动处理程序

2024-03-06

我正在开发 .jar api 以从 Unity3D 读取 Google Fit 数据。我现在面临的问题是,当我想执行这段代码时:

private void buildFitnessClient() {
    mClient = new GoogleApiClient.Builder(myContext).addApi(Fitness.HISTORY_API)
                .addScope(new Scope(Scopes.FITNESS_ACTIVITY_READ_WRITE))
                .addConnectionCallbacks(new ConnectionCallbacksListener())
                .enableAutoManage(this, 0, new ConnectionFailedListener()).build();
}

我收到错误: java.lang.IllegalStateException:必须从进程的主线程调用

该错误是由于this代码行最后一句中的引用。

现在在网上我发现我可以通过在主循环器上启动处理程序来解决这个问题,我用以下代码尝试了这一点:

new Handler(Looper.getMainLooper()).post(
            new Runnable() {
                @Override
                public void run() {
                    try {
                        buildFitnessClient();
                    } catch (Exception ex) {
                        Log.i(TAG, ex.getMessage() + "\n");
                    }
                }
            });

由于某种原因,我的 Unity 应用程序立即崩溃,通常我会收到错误,因为我使用了 try catch 语句。遇到这个问题,它立即崩溃,并且没有我可以检查的日志。

当我创建没有 mainlooper 的处理程序时,例如:

new Handler()

or

new Handler(Looper.myLooper())

代码运行,但 java.lang.IllegalStateException 错误仍然存​​在,并且 Thread.currentThread() 显然保持不变。

程序运行的线程是Unity创建的线程。

提前致谢!


None

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

无法在主线程上启动处理程序 的相关文章

随机推荐

  • 在 Python 中导入 Seaborn 模块时出错:“ImportError:无法导入 name utils”

    我正在尝试使用以下代码将seaborn导入python 使用2 7 import matplotlib pyplot as plt import seaborn as sns import pandas as pd import numpy
  • 交换行和列

    我需要一个 MATLAB 函数 它将在矩阵中相互交换 2 行或 2 列 任意大小 假设你采用矩阵 gt gt A magic 4 A 16 2 3 13 5 11 10 8 9 7 6 12 4 14 15 1 如果你想交换第 3 列和第
  • 如何共享 git 配置?

    我已经使用启动了一个新的 git 存储库git flow 完成一两次提交并推送 当我将存储库克隆到新目录并运行git flow命令我收到错误 Fatal Not a gitflow enabled repo yet Please run g
  • 在 Android-x86 上网本上使用 ADB 通过蓝牙调试应用程序

    我设法在我的上网本上设置了一个运行良好的 Android x86 启用了蓝牙并与我的 Windows 7 开发工作站配对 我最初希望通过 USB 使用 adb 就像我使用真正的手机一样 所以我插入了专用的 USB 公对公电缆 然后 什么也没
  • python 中的 IOError 22 在 windows 上无效

    我正在 python 中创建串口嗅探器 但是当我在 Windows 中创建 CSV 文件时遇到问题 我在某个点上分割了我的程序以避免Windows和Linux之间不兼容的可能性 它在 Linux 上完美运行 在 32 和 64 字节上测试
  • 当应用商店中有新版本时,通过代码检查和更新应用程序

    在我的应用程序中 我想检查应用程序商店中是否有我的应用程序的任何更新版本 如果有的话 那么必须通过警报消息通知用户 如果他 她选择升级 我想更新新版本 我想通过我的应用程序完成这一切 这可能吗 您可以在服务器上存储最新的应用程序版本字符串
  • 在 JUnit 5 中为 @ParameterizedTest 生成显示名称

    我有一堆 ParameterizedTests 从 a 接收参数 MethodSource相当冗长toString 结果 例如 Selenium 的WebDriver 默认情况下使用它们来组成相应的显示名称 来自JUnit 5 用户指南 h
  • 如何使用 Laravel 和 Eloquent 查询两个日期?

    我正在尝试创建一个报告页面 显示从特定日期到特定日期的报告 这是我当前的代码 now date Y m d reservations Reservation where reservation from now gt get 这在普通 SQ
  • 如何在 Django 1.7 的表单模型中获取当前登录的用户 ID?

    假设我有一个显示歌曲的网页 假设有公共歌曲和私人歌曲 公开歌曲是所有人都可以看到的 而私人歌曲是某个用户自己创建的 只有他自己可以看到的歌曲 所以用户应该只看到那些具有owner id NULL和owner id current logge
  • Ruby:将变量合并到字符串中

    我正在寻找一种更好的方法 在 Ruby 中将变量合并到字符串中 例如 如果字符串类似于 The animal action the second animal 我有变量animal action and second animal 将这些变
  • Tensorflow 基本示例错误:CUBLAS_STATUS_NOT_INITIALIZED

    您好 我正在尝试安装并运行tensorflow 1 0 我正在使用以下指南https www tensorflow org get started mnist beginners https www tensorflow org get s
  • 缺少“访问控制允许来源”。我的下一步应该是什么?

    我想从这里提取收益率曲线数据 下面的 get 请求返回 200 正常 状态代码 但也显示一条控制台注释 指出跨域请求被阻止 因为缺少 CORS 标头 Access Control Allow Origin get http www trea
  • 如何从 PHP 中的 json_decode 访问嵌套数组?

    我花了几个小时在这上面 并且在 stackoverflow 上阅读了很多答案 但没有一个有帮助 到目前为止我所能做的就是打印集市广场 克利夫登对于这个例子 obj json decode data obj obj 0 print obj g
  • 如何使用 python 的 PIL 以一定角度绘制文本?

    使用 Python 我希望能够使用 PIL 以不同角度绘制文本 例如 假设您正在钟面周围绘制数字 号码3会按预期出现 而12我们将逆时针旋转 90 度来绘制 因此 我需要能够从许多不同的角度绘制许多不同的弦 将文本绘制到临时空白图像中 旋转
  • 不同进程的内存地址相同

    我只是不明白为什么这段代码会这样工作 而不是我期望的 include
  • LINQ 与 FoxPro?

    有没有合理的方法使用 LINQ 访问 FoxPro 数据库 我刚刚完成实施工作 http linqtovfp codeplex com http linqtovfp codeplex com
  • Android:事件 ACTION_POWER_CONNECTED 未发送到我的 BroadcastReceiver

    我想在手机插入充电器后做一些事情 所以我 已创建ChargingOnReciever public class ChargingOnReceiver extends BroadcastReceiver public void onRecei
  • Flash 消息无法正常工作express/nodejs/ejs

    闪存消息似乎不起作用 我想我错过了一些非常明显的东西 但我已经研究了一个小时 但我仍然不知道为什么它不起作用 我的中间件 Session middleware app use session secret stuffedbagels res
  • 通过嵌套 tf.map_fn 反向传播梯度

    我想在每个向量上映射一个 TensorFlow 函数 该向量对应于具有维度的矩阵中每个像素的深度通道 批量大小 H W n 通道 换句话说 对于每个尺寸的图像H x W我在批次中拥有 我提取一些特征图F k 其数量为n channels 具
  • 无法在主线程上启动处理程序

    我正在开发 jar api 以从 Unity3D 读取 Google Fit 数据 我现在面临的问题是 当我想执行这段代码时 private void buildFitnessClient mClient new GoogleApiClie