2016-04-04 24 views
0

google guava kütüphanesine dayanan android uygulamasında google'ın grpc kitaplığını kullanıyorum. Bazı nedenlerden dolayı grpc'ye gömülen guava, MoreExecutors. sınıfında 'directExecutor' yöntemine sahip değildir. Ancak yöntem github sürümünde mevcut mu? Uyuşmazlığı ne hesaplar?directExecutor yöntemi guava kütüphanesinde eksik

ClientCallImpl adlı bir sınıf, directExecutor çağrısının yapıldığı yerdir. İçe aktarma bildirimi hakkında (import static com.google.common.util.concurrent.MoreExecutors.directExecutor;) AndroidStudio, can't resolve symbol mesajını gösterir, ancak yapı başarısız olmaz. Arama sırasında çağrı yapıldığında istisna kaldırılır.

Hata Mesajı

FATAL EXCEPTION: SyncAdapterThread-1 
    Process: com.asdf.asdf, PID: 4025 
      java.lang.NoSuchMethodError: No static method directExecutor()Ljava/util/concurrent/Executor; in class Lcom/google/common/util/concurrent/MoreExecutors; or its super classes (declaration of 'com.google.common.util.concurrent.MoreExecutors' appears in /data/data/com.fentale.dalol/files/instant-run/dex/slice-guava-jdk5-17.0_a8ada10dcaf113cb6e3b4d3e5b46975833f8ae8f-classes.dex) 
       at io.grpc.internal.ClientCallImpl.<init>(ClientCallImpl.java:100) 
       at io.grpc.internal.ManagedChannelImpl$RealChannel.newCall(ManagedChannelImpl.java:320) 
       at io.grpc.internal.ManagedChannelImpl.newCall(ManagedChannelImpl.java:299) 
       at io.grpc.stub.ClientCalls.blockingUnaryCall(ClientCalls.java:130) 
       at com.fentale.dalol.nano.DalolGrpc$DalolBlockingStub.topPosts(DalolGrpc.java:365) 

DÜZENLEME

sorun benim proje sadece MoreExecutors sınıfında tanımlanır hem guava-18.0 ve guava-jdk5-17.0. ben directExecutor istediğiniz yöntem üzerinde bağımlılıkları olmasıdır görünüyor guava-18, 17 değil. Ama kod, sınıfın ikinci versiyonunda arıyor. Bunu nasıl çözebilirim?

+0

Hey @Michael bunu çözebildiniz mi? Aynı konuyla yüzleşiyorum. –

+0

@NameisNilay Cevabı kontrol et. –

+0

Uygulamamda Youtube bağımlılığı yok. Yani bu işe yaramaz. Bunun dışında, her ithalat için 'guava-jdk5' modülünü hariç tuttum ama yine de hatayı çözemiyorum. Herhangi bir öneri ? –

cevap

0

Uygulamamın, guava'ya bağlı olan youtube kütüphanesine bağımlılığı vardı. Ancak youtube guava bağımlılığı grpc'lerden farklı bir kaynaktan ve daha eski bir versiyondan kaynaklanıyor. Uygulamada guava kavanozunun iki versiyonu vardı ve grpc, youtube'un kendi yerine eski guava versiyonuna erişiyordu ve bu da soruna neden oldu.

compile('com.google.apis:google-api-services-youtube:v3-rev164-1.21.0') { 
    exclude module: 'guava-jdk5' 
} 
İlgili konular