question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

Issue compiling from clean build

See original GitHub issue

I’ve started running into an issue with retrolambda and the latest AppCompat release.

Steps to reproduce:

  1. Update AppCompat dependency on a project to 22.1.1
  2. Run ./gradlew clean
  3. Run ./gradlew compile (Yes, separately from the last step - done together it worked sometimes)
  4. See this error if you are using lambdas inside of a class extending FragmentActivity:
Error! Failed to transform some classes
java.lang.RuntimeException: java.lang.IllegalAccessException: no such method: com.trello.common.TFragmentActivity.lambda$bindObservable$214(Observable)Observable/invokeSpecial
    at net.orfjackal.retrolambda.lambdas.LambdaReifier.reifyLambdaClass(LambdaReifier.java:42)
    at net.orfjackal.retrolambda.lambdas.BackportLambdaInvocations$InvokeDynamicInsnConverter.backportLambda(BackportLambdaInvocations.java:105)
    at net.orfjackal.retrolambda.lambdas.BackportLambdaInvocations$InvokeDynamicInsnConverter.visitInvokeDynamicInsn(BackportLambdaInvocations.java:94)
    at net.orfjackal.retrolambda.asm.ClassReader.readCode(ClassReader.java:1439)
    at net.orfjackal.retrolambda.asm.ClassReader.readMethod(ClassReader.java:1017)
    at net.orfjackal.retrolambda.asm.ClassReader.accept(ClassReader.java:693)
    at net.orfjackal.retrolambda.asm.ClassReader.accept(ClassReader.java:506)
    at net.orfjackal.retrolambda.Transformers.lambda$transform$4(Transformers.java:106)
    at net.orfjackal.retrolambda.Transformers$$Lambda$2/2007328737.accept(Unknown Source)
    at net.orfjackal.retrolambda.Transformers.transform(Transformers.java:120)
    at net.orfjackal.retrolambda.Transformers.transform(Transformers.java:106)
    at net.orfjackal.retrolambda.Transformers.backportClass(Transformers.java:46)
    at net.orfjackal.retrolambda.Retrolambda.run(Retrolambda.java:72)
    at net.orfjackal.retrolambda.Main.main(Main.java:26)
Caused by: java.lang.IllegalAccessException: no such method: com.trello.common.TFragmentActivity.lambda$bindObservable$214(Observable)Observable/invokeSpecial
    at java.lang.invoke.MemberName.makeAccessException(MemberName.java:872)
    at java.lang.invoke.MemberName$Factory.resolveOrFail(MemberName.java:993)
    at java.lang.invoke.MethodHandles$Lookup.resolveOrFail(MethodHandles.java:1379)
    at java.lang.invoke.MethodHandles$Lookup.findSpecial(MethodHandles.java:997)
    at net.orfjackal.retrolambda.lambdas.Types.toMethodHandle(Types.java:42)
    at net.orfjackal.retrolambda.lambdas.Types.asmToJdkType(Types.java:19)
    at net.orfjackal.retrolambda.lambdas.LambdaReifier.callBootstrapMethod(LambdaReifier.java:106)
    at net.orfjackal.retrolambda.lambdas.LambdaReifier.reifyLambdaClass(LambdaReifier.java:37)
    ... 13 more
Caused by: java.lang.NoClassDefFoundError: android/support/v4/view/LayoutInflaterFactory
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:760)
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
    at java.net.URLClassLoader.defineClass(URLClassLoader.java:455)
    at java.net.URLClassLoader.access$100(URLClassLoader.java:73)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:367)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:360)
    at net.orfjackal.retrolambda.NonDelegatingClassLoader.loadClass(NonDelegatingClassLoader.java:25)
    at java.lang.invoke.MethodHandleNatives.resolve(Native Method)
    at java.lang.invoke.MemberName$Factory.resolve(MemberName.java:965)
    at java.lang.invoke.MemberName$Factory.resolveOrFail(MemberName.java:990)
    ... 19 more
Caused by: java.lang.ClassNotFoundException: android.support.v4.view.LayoutInflaterFactory
    at java.net.URLClassLoader$1.run(URLClassLoader.java:372)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:360)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    at net.orfjackal.retrolambda.NonDelegatingClassLoader.loadClass(NonDelegatingClassLoader.java:27)
    ... 32 more

The strangest part is that doing a non-clean build will work, though I suspect that’s because it’s skipping the retrolambda step.

This happens with retrolambda 2.0.0 or 2.0.2 (I tried both).

These are not static method calls.

Issue Analytics

  • State:closed
  • Created 8 years ago
  • Comments:33 (4 by maintainers)

github_iconTop GitHub Comments

1reaction
magicgoosecommented, May 25, 2015

@rafaelekol

tasks.whenTaskAdded { task ->
    if (task.name.startsWith("lint")) {
        task.enabled = false
    }
}

apply plugin: 'com.android.application'
apply plugin: 'me.tatarka.retrolambda'

retrolambda {
    jvmArgs '-noverify'
}

android {
    // the rest of the script
0reactions
denis-itskovichcommented, Oct 2, 2015

Might be this issue is related to this one: #134 If it is related, this version should fix it:

buildscript {
    repositories {
        maven { url "https://jitpack.io" }
    }
    dependencies {
        classpath 'com.github.denis-itskovich:gradle-retrolambda:3.2.3-fix-134'
    }
}
Read more comments on GitHub >

github_iconTop Results From Across the Web

Build and clean projects and solutions in Visual Studio
Learn how you can build, rebuild, or clean all or some of the projects or project items in a solution.
Read more >
What exactly does "Clean and Build" do? - Stack Overflow
make clean is used for cleaning the project. It deletes the object files and the executable, and any other files necessary to allow...
Read more >
mvn clean install - a short guide to Maven - Marco Behler
You are using the clean command, which will delete all previously compiled Java .class files and resources (like .properties) in your project.
Read more >
Mbed build vs clean build - Bugs - Arm Mbed OS support forum
The Clean Build will “delete” all precompiled sources and it is re- builded again from start like with first compilation, and of course...
Read more >
[OpenWrt Wiki] Build system usage
There is an issue affecting the current OpenWrt source tree (from at least 21.02 ... Build it with make package/my_package/{clean,compile}
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found