gpt4 book ai didi

android - 在磨损服务中调用 blockingConnect 时出现 IllegalStateException

转载 作者:太空宇宙 更新时间:2023-11-03 12:48:50 25 4
gpt4 key购买 nike

我正在尝试开发一个 Android Wear 应用程序并从移动助手 Activity 中传递一个 Assets 。我已经按照官方文件传递 Assets - Transferring Assets ,但是在尝试从 onDataChanged 函数中传递的 Assets 加载位图时出现以下错误。请注意,代码在传递 String 值时有效。代码如下:

public Bitmap loadBitmapFromAsset(Bitmap bitmap, Asset asset) {
if (asset == null) {
throw new IllegalArgumentException("Asset must be non-null");
}

ConnectionResult result = mGoogleApiClient.blockingConnect(5000, TimeUnit.MILLISECONDS);
if (!result.isSuccess()) {
return null;
}

InputStream assetInputStream = Wearable.DataApi.getFdForAsset(mGoogleApiClient, asset).await().getInputStream();
mGoogleApiClient.disconnect();

if (assetInputStream == null) {
return null;
}

if (bitmap != null) {
bitmap.recycle();
bitmap = null;
}

bitmap = BitmapFactory.decodeStream(assetInputStream);
return bitmap;
}

我得到的错误如下:

java.lang.IllegalStateException: blockingConnect must not be called on the UI thread at com.google.android.gms.common.internal.zzx.zza(Unknown Source) at com.google.android.gms.common.api.internal.zzj.blockingConnect(Unknown Source) ...

关于造成这种情况的原因有什么想法吗?

最佳答案

最终的解决方案是在可运行文件中执行 loadBitmapFromAsset。不明白为什么我没有早点弄清楚...我还没有找到类似的帖子,所以希望它能帮助别人。

new Thread(new Runnable() {
@Override
public void run() {
...
}
}).start();

关于android - 在磨损服务中调用 blockingConnect 时出现 IllegalStateException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36406039/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com