android-studio lambda android-jack-and-jill

android studio - Jack y Android-Fallo en el tiempo de ejecución de Lambda hasta compilación limpia



android-studio android-jack-and-jill (1)

Supongo que esto es un error en Build Tools 25.0.0 y 25.0.1. Volver a 24.0.3 solucionó este problema para mí.

ACTUALIZACIÓN Después de actualizar a com.android.tools.build:gradle:2.2.3 , tuve un día laboral completo sin errores de compilación con Build Tools v25.0.1.

Al parecer, al azar, el apk que instala Android Studio está dañado. Por lo general, se centra alrededor de las lambdas (pero es diferente cada vez). Estoy usando la compilación de Jack y la última versión de todo (enumerada al final). El problema persiste hasta que hago una compilación limpia (y luego todo está bien). Los fallos intermitentes son un fenómeno nuevo. Las cosas se mantuvieron estables con las características de Jack y Java 8 por un tiempo. Desafortunadamente, no puedo precisar lo que cambió antes de que comenzaran los escandalosos fracasos.

Código de ejemplo:

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

Asignación real del problema (en código guava):

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;

Ejemplo de excepción de tiempo de ejecución:

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 Build Tools 2.2.2
  • Gradle 2.14.1
  • buildToolsVersion 25.0.0
  • sourceCompatibility / targetCompatibility JavaVersion.VERSION_1_8
  • compileSdkVersion / targetSdkVersion 24