error: cannot find symbol static runOnUiThread

error: cannot find symbol static runOnUiThread

我在编译具有以下导入语句的 android 应用程序时遇到问题:

import static com.google.android.gms.internal.zzhl.runOnUiThread;

得到以下错误:

Error:(37, 1) error: cannot find symbol static runOnUiThread

尝试使用该方法时还有另一个错误(很明显,因为导入失败)。

我试过用谷歌搜索这个问题,但找不到任何东西。从字面上蹲下这个方法和导入语句。

有人知道这件事吗,或者我怎样才能编译它?我走投无路了。

com.google.android.gms.internal.zzhl 不是 API 或 SDK 的一部分,正如 "internal" 名称暗示的那样。而 "zzhl" class 名称实际上是由 proguard 生成的,因此它可能会在 gms 包的未来版本中发生变化。

您不应该直接使用 class 或其中的任何方法。

这就是您无法导入它的原因。

导入静态com.google.android.gms.internal.zzhl.runOnUiThread;

这是 Google Play Services,它是闭源的。这是与该名称匹配的 class 的反编译源代码:

//
// Source code recreated from a .class file by IntelliJ IDEA
// (powered by Fernflower decompiler)
//

package com.google.android.gms.internal;

import com.google.android.gms.ads.internal.reward.mediation.client.RewardItemParcel;
import com.google.android.gms.ads.internal.reward.mediation.client.zza.zza;
import com.google.android.gms.dynamic.zzd;
import com.google.android.gms.dynamic.zze;
import com.google.android.gms.internal.zzgr;
import com.google.android.gms.internal.zzhj;
import com.google.android.gms.internal.zzhk;
import com.google.android.gms.internal.zzhm;

@zzgr
public class zzhl extends zza {
    private zzhj zzHn;
    private zzhm zzHh;
    private zzhk zzHo;

    public zzhl(zzhk var1) {
        this.zzHo = var1;
    }

    public void zza(zzhj var1) {
        this.zzHn = var1;
    }

    public void zza(zzhm var1) {
        this.zzHh = var1;
    }

    public void zzg(zzd var1) {
        if(this.zzHn != null) {
            this.zzHn.zzge();
        }

    }

    public void zzb(zzd var1, int var2) {
        if(this.zzHn != null) {
            this.zzHn.zzK(var2);
        }

    }

    public void zzh(zzd var1) {
        if(this.zzHh != null) {
            this.zzHh.zzav(zze.zzp(var1).getClass().getName());
        }

    }

    public void zzi(zzd var1) {
        if(this.zzHo != null) {
            this.zzHo.onRewardedVideoAdOpened();
        }

    }

    public void zzj(zzd var1) {
        if(this.zzHo != null) {
            this.zzHo.onRewardedVideoStarted();
        }

    }

    public void zzk(zzd var1) {
        if(this.zzHo != null) {
            this.zzHo.onRewardedVideoAdClosed();
        }

    }

    public void zza(zzd var1, RewardItemParcel var2) {
        if(this.zzHo != null) {
            this.zzHo.zza(var2);
        }

    }

    public void zzl(zzd var1) {
        if(this.zzHo != null) {
            this.zzHo.zzgb();
        }

    }

    public void zzc(zzd var1, int var2) {
        if(this.zzHh != null) {
            this.zzHh.zzb(zze.zzp(var1).getClass().getName(), var2);
        }

    }

    public void zzm(zzd var1) {
        if(this.zzHo != null) {
            this.zzHo.onRewardedVideoAdLeftApplication();
        }

    }
}