2015-10-21 3 views
0

У меня возникли проблемы с компиляцией андроид приложение, которое имеет следующий оператор импорта:ошибка: не удается найти символ статического runOnUiThread

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

Получить следующую ошибку:

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

Там другая ошибка, где метод также используется (очевидно, поскольку импорт не удался).

Я пробовал об этом, но ничего не могу найти. Буквально приседайте об этом методе и инструкции импорта.

Кто-нибудь знает об этом или как я могу скомпилировать этот файл? Я в тупике.

+0

Одна вещь, которую вы можете сделать, это попытаться понять, что делал предыдущий разработчик с помощью этого метода. Вы можете опубликовать часть кода, где она используется. Есть хороший шанс, что его можно заменить чем-то другим. – njzk2

ответ

4

com.google.android.gms.internal.zzhl не является частью API или SDK в качестве «внутренних» названий. И имя класса zzhl фактически генерируется proguard, поэтому оно может измениться в будущих версиях пакета gms.

Вы не должны использовать этот класс или любые методы внутри него напрямую.

И поэтому вы не можете импортировать его.

+0

Напишите свой собственный метод 'runOnUiThread'. Не следует слишком сильно использовать классы Handler и Looper. Разумеется, зависит от точной семантики, необходимой для метода. –

-1

импорт статический com.google.android.gms.internal.zzhl.runOnUiThread;

Это Google Play Services, который закрыт. Вот декомпилированный источник класса, совпадающего с этим именем:

// 
// 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(); 
     } 

    } 
} 
+0

Вы должны быть в состоянии рассказать, для чего он используется в зависимости от контекста, найти соответствующие вызовы метода сервисов и заменить их. –