2016-11-04 13 views
16

Android Studio'nun kurduğu apk, rastgele bir şekilde bozuldu. Genellikle lambdas etrafında (ama her seferinde farklı bir tane). Jack derlemesini ve her şeyin en son sürümünü kullanıyorum (sonunda listelenir). Temiz bir yapı yapana kadar problem devam ediyor (ve sonra her şey yolunda gidiyor). Aralıklı başarısızlıklar yeni bir olgudur. İşler bir süre için Jack ve Java 8 özellikleriyle kararlıydı. Maalesef, kesinti başarısızlıklarının başlamasından önce neyin değiştiğini anlayamıyorum.Jack and Android - Temizlenene kadar Lambda çalışma zamanı hatası

örnek kod:

private static final Ordering<Foo> ORDER_BY_FOO = 
    Ordering.natural().onResultOf(Foo::getId); 

Gerçek sorun atama (Guava kodunda):

ByFunctionOrdering(Function<F, ? extends T> function, Ordering<T> ordering) { 
    this.function = checkNotNull(function); // <-- Fails 
[...] 
class ByFunctionOrdering<F, T> extends Ordering<F> { 
    final Function<F, ? extends T> function; 

Örnek çalışma zamanı istisna:

E/AndroidRuntime: FATAL EXCEPTION: main 
Process: com.mypackage, PID: 32222 
java.lang.ExceptionInInitializerError 
    at com.mypackage.MyFragment.myOtherMethod(MyFragment.java) 
    at com.mypackage.MainActivity.myMethod(MainActivity.java:144) 
    at com.mypackage.MainActivity.onActivityResult(MainActivity.java:107) 
    at android.app.Activity.dispatchActivityResult(Activity.java:6932) 
    at android.app.ActivityThread.deliverResults(ActivityThread.java:4085) 
    at android.app.ActivityThread.handleSendResult(ActivityThread.java:4132) 
    at android.app.ActivityThread.-wrap20(ActivityThread.java) 
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1533) 
    at android.os.Handler.dispatchMessage(Handler.java:102) 
    at android.os.Looper.loop(Looper.java:154) 
    at android.app.ActivityThread.main(ActivityThread.java:6119) 
    at java.lang.reflect.Method.invoke(Native Method) 
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886) 
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776) 
Caused by: java.lang.ClassCastException: com.mypackage.-$Lambda$0 cannot be cast to com.google.common.base.Function 
    at com.google.common.collect.ByFunctionOrdering.<init>(ByFunctionOrdering.java:39) 
    at com.google.common.collect.Ordering.onResultOf(Ordering.java:416) 
    at com.mypackage.MyFragment.<clinit>(MyFragment.java:110) 
    at com.mypackage.MyFragment.myOtherMethod(MyFragment.java) 
    at com.mypackage.MainActivity.myMethod(MainActivity.java:144) 
    at com.mypackage.GamesApiManager.onActivityResult(GamesApiManager.java:205) 
    at com.mypackage.MainActivity.onActivityResult(MainActivity.java:107) 
    at android.app.Activity.dispatchActivityResult(Activity.java:6932) 
    at android.app.ActivityThread.deliverResults(ActivityThread.java:4085) 
    at android.app.ActivityThread.handleSendResult(ActivityThread.java:4132) 
    at android.app.ActivityThread.-wrap20(ActivityThread.java) 
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1533) 
    at android.os.Handler.dispatchMessage(Handler.java:102) 
    at android.os.Looper.loop(Looper.java:154) 
    at android.app.ActivityThread.main(ActivityThread.java:6119) 
    at java.lang.reflect.Method.invoke(Native Method) 
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886) 
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776) 
  • Android Studio/gradle inşa etmek araçları 2.2 .2
  • Gradle 2.14.1
  • buildToolsVersion 25.0.0
  • sourceCompatibility/targetCompatibility JavaVersion.VERSION_1_8
  • compileSdkVersion/targetSdkVersion 24
+0

24.0.3'e geri dönmekten başka bir çözüm buldunuz mu? 25.0.1 de benim için düzeltmek için görünmüyor. –

+0

Android Studio'yla çalışmayan birkaç haftadan sonra, en son güncelleme kümesini yükledim ve son iki gün boyunca herhangi bir sorunla karşılaşmadım. Bu, güncellemelerin herhangi bir şeyi düzeltdiği anlamına gelmez ... ama umut verici. Tekrar bir başarısızlık görüp görmediğimi rapor edeceğim – colithium

+0

Ve bir intikamla geri dönmüş gibi görünüyor. Neredeyse tüm diğer değişiklikler temiz bir yapı gerektirir – colithium

cevap

3

Bu Yapı Araçları 25.0.0 ve 25.0 bir hata olduğunu varsayalım. 1. Benim için bu sorunu 24.0.3'e geri döndürme.

GÜNCELLEME com.android.tools.build:gradle:2.2.3 güncelledikten sonra, Yapı Araçları v25.0.1 ile inşa hatasız tam iş günü vardı.

İlgili konular