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.

java.lang.NoSuchMethodError: No static method metafactory

See original GitHub issue

It seems the newest version implementation 'com.squareup.retrofit2:converter-scalars:2.7.1' has not convertFactory support. Follow code:

        val retrofit: Retrofit = Retrofit.Builder()
            .baseUrl("http://www.example.com")
            .addConverterFactory(ScalarsConverterFactory.create())
            .build()

It will report a no metafactory error, if I downgrade to 1.5.0, this code will work as well.

Issue Analytics

  • State:closed
  • Created 4 years ago
  • Comments:6 (2 by maintainers)

github_iconTop GitHub Comments

5reactions
Zingamcommented, Mar 29, 2020

Is it possible to get a better error message about that?

Adding this fixes the exception but then it requires quite an effort to discover the solution: compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 }

kotlinOptions {
    jvmTarget = JavaVersion.VERSION_1_8.toString()
}

E/AndroidRuntime: FATAL EXCEPTION: main Process: com.example.android.gdgfinder, PID: 13784 java.lang.NoSuchMethodError: No static method metafactory(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite; in class Ljava/lang/invoke/LambdaMetafactory; or its super classes (declaration of ‘java.lang.invoke.LambdaMetafactory’ appears in /apex/com.android.runtime/javalib/core-oj.jar) at okhttp3.internal.Util.<clinit>(Util.java:87) at okhttp3.internal.Util.skipLeadingAsciiWhitespace(Util.java:321) at okhttp3.HttpUrl$Builder.parse(HttpUrl.java:1313) at okhttp3.HttpUrl.get(HttpUrl.java:917) at retrofit2.Retrofit$Builder.baseUrl(Retrofit.java:492) at com.example.android.gdgfinder.network.GdgApiServiceKt.<clinit>(GdgApiService.kt:26) at com.example.android.gdgfinder.network.GdgApiServiceKt.access$getRetrofit$p(GdgApiService.kt:1) at com.example.android.gdgfinder.network.GdgApi$retrofitService$2.invoke(GdgApiService.kt:30) at com.example.android.gdgfinder.network.GdgApi$retrofitService$2.invoke(GdgApiService.kt:29) at kotlin.SynchronizedLazyImpl.getValue(LazyJVM.kt:74) at com.example.android.gdgfinder.network.GdgApi.getRetrofitService(Unknown Source:2) at com.example.android.gdgfinder.search.GdgListViewModel.<init>(GdgListViewModel.kt:15) at java.lang.Class.newInstance(Native Method) at androidx.lifecycle.ViewModelProvider$NewInstanceFactory.create(ViewModelProvider.java:219) at androidx.lifecycle.ViewModelProvider$AndroidViewModelFactory.create(ViewModelProvider.java:278) at androidx.lifecycle.SavedStateViewModelFactory.create(SavedStateViewModelFactory.java:106) at androidx.lifecycle.ViewModelProvider.get(ViewModelProvider.java:185) at androidx.lifecycle.ViewModelProvider.get(ViewModelProvider.java:150) at com.example.android.gdgfinder.search.GdgListFragment$viewModel$2.invoke(GdgListFragment.kt:26) at com.example.android.gdgfinder.search.GdgListFragment$viewModel$2.invoke(GdgListFragment.kt:22) at kotlin.SynchronizedLazyImpl.getValue(LazyJVM.kt:74) at com.example.android.gdgfinder.search.GdgListFragment.getViewModel(Unknown Source:2) at com.example.android.gdgfinder.search.GdgListFragment.onCreateView(GdgListFragment.kt:37) at androidx.fragment.app.Fragment.performCreateView(Fragment.java:2698) at androidx.fragment.app.FragmentStateManager.createView(FragmentStateManager.java:310) at androidx.fragment.app.FragmentManager.moveToState(FragmentManager.java:1185) at androidx.fragment.app.FragmentManager.addAddedFragments(FragmentManager.java:2222) at androidx.fragment.app.FragmentManager.executeOpsTogether(FragmentManager.java:1995) at androidx.fragment.app.FragmentManager.removeRedundantOperationsAndExecute(FragmentManager.java:1951) at androidx.fragment.app.FragmentManager.execPendingActions(FragmentManager.java:1847) at androidx.fragment.app.FragmentManager$4.run(FragmentManager.java:413) at android.os.Handler.handleCallback(Handler.java:883) at android.os.Handler.dispatchMessage(Handler.java:100) at android.os.Looper.loop(Looper.java:214) at android.app.ActivityThread.main(ActivityThread.java:7356) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:930)

E/AndroidRuntime: FATAL EXCEPTION: main Process: com.example.android.gdgfinder, PID: 14120 retrofit2.HttpException: HTTP 404 at com.jakewharton.retrofit2.adapter.kotlin.coroutines.CoroutineCallAdapterFactory$BodyCallAdapter$adapt$2.onResponse(CoroutineCallAdapterFactory.kt:104) at retrofit2.OkHttpCall$1.onResponse(OkHttpCall.java:150) at okhttp3.RealCall$AsyncCall.execute(RealCall.java:174) at okhttp3.internal.NamedRunnable.run(NamedRunnable.java:32) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641) at java.lang.Thread.run(Thread.java:919)

3reactions
natalieytancommented, May 24, 2020

Enable Java 8

Thanks. Works perfectly 👍

Followed the android java8-support guide: https://developer.android.com/studio/write/java8-support

Read more comments on GitHub >

github_iconTop Results From Across the Web

No static method metafactory - java - Stack Overflow
In my case, I was importing a new android library, my android library was compatible with java 8 but my main project wasn't....
Read more >
No static method metafactory(Ljava/lang/invoke ...
java.lang.NoSuchMethodError: No static method metafactory(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String ...
Read more >
No static method metafactory...(java.lang.invoke ...
NoSuchMethodError : No static method metafactory(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType ...
Read more >
java static method_java.lang.NoSuchMethodError
java.lang.NoSuchMethodError: No static method metafactory(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType ...
Read more >
No static method metafactory(Ljava/lang/invoke ... - 简书
解决Caused by: java.lang.NoSuchMethodError: No st... 先发日志想了很久也没有明白是怎么会儿事,只出现在小米和红米的部分机型。反 ...
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