कोई स्थिर विधि मेटाफैक्टिक नहीं है


26

मेरे पास मेरे ऐप के साथ एक समस्या है कि जब मैं लॉग इन करता हूं, तो ऐप क्रैश हो जाता है और मुझे त्रुटि मिलती है:

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.usub.Remote.RetrofitClient.getClient(RetrofitClient.java:14)
        at com.example.usub.Common.Common.getGoogleAPI(Common.java:10)
        at com.example.usub.Welcome.onCreate(Welcome.java:208)
        at android.app.Activity.performCreate(Activity.java:7825)
        at android.app.Activity.performCreate(Activity.java:7814)
        at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1306)
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3245)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3409)
        at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:83)
        at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)
        at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2016)
        at android.os.Handler.dispatchMessage(Handler.java:107)
        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)

मैंने ग्रेडेल और परिवर्तन चर के साथ गड़बड़ करने की कोशिश की है। इस पैकेज से यह मुद्दा लगता है:

import retrofit2.Retrofit;
import retrofit2.converter.scalars.ScalarsConverterFactory;

public class RetrofitClient {
    private static Retrofit retrofit = null;

    public static Retrofit getClient(String baseURL)
    {
        if(retrofit == null)
        {
            retrofit = new Retrofit.Builder()
                    .baseUrl(baseURL)
                    .addConverterFactory(ScalarsConverterFactory.create())
                    .build();
        }
        return retrofit;

    }
    }

यह तब एक और संदर्भ देता है:

import com.example.usub.Remote.IGoogleAPI;
import com.example.usub.Remote.RetrofitClient;
public class Common {
    public static  final String baseURL = "https://maps.googleapis.com";
    public static IGoogleAPI getGoogleAPI()
    {
        return RetrofitClient.getClient(baseURL).create(IGoogleAPI.class);
    }
}

यहाँ मेरा जोड़ है

apply plugin: 'com.android.application'

android {
    compileSdkVersion 29
    defaultConfig {
        applicationId "com.example.usub"
        minSdkVersion 26
        targetSdkVersion 29
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation 'androidx.appcompat:appcompat:1.2.0-alpha01'
    implementation 'com.firebase:geofire-android:2.1.2'
    implementation 'com.github.kmenager:material-animated-switch:1.2.2'
    implementation 'com.squareup.retrofit2:retrofit:2.7.0'
    implementation 'com.squareup.retrofit2:converter-scalars:2.7.0'
    implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
    implementation 'com.google.firebase:firebase-database:19.2.0'
    implementation 'com.google.firebase:firebase-auth:19.2.0'
    implementation 'com.google.android.material:material:1.0.0'
    implementation 'com.github.d-max:spots-dialog:0.7@aar'
    implementation "androidx.cardview:cardview:1.0.0"
    implementation 'uk.co.chrisjenx:calligraphy:2.3.0'
    implementation 'com.rengwuxian.materialedittext:library:2.1.4'
    implementation 'com.google.android.gms:play-services-maps:17.0.0'
    //implementation 'com.google.android.gms:play-services:17.0.0'
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'androidx.test.ext:junit:1.1.1'
    androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'
    implementation 'com.google.firebase:firebase-analytics:17.2.1'
    implementation 'com.google.android.gms:play-services-location:17.0.0'
}

apply plugin: 'com.google.gms.google-services'

त्रुटि को ठीक करने का तरीका खोजने के बारे में कोई विचार?

जवाबों:


73

कुछ लाइब्रेरी की उचित डी-शुगरिंग के लिए, जावा 8 संगतता पर स्विच करने का प्रयास करें:

android {

    ...
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }

    kotlinOptions {
        jvmTarget = "1.8"
    }
}

इसके अलावा, Google JSON API को इसकी आवश्यकता हो सकती है GsonConverterFactory


2
प्रलेखन वर्ग के अनुसार। Github.io/okhttp/upmission_to_okhttp_4 यह एंड्रॉइड {kotlinOptions {jvmTarget = "1.8"} को जोड़ने की भी सिफारिश की गई है
मिखाइल शरीफ

1
@ मिखाइलशरीन यह तभी लागू होता है जब कोटलिन से जावा बाइट-कोड तक ट्रांस-पाइलिंग; इसलिए यह केवल कोटलिन परियोजनाओं (या मिश्रित परियोजनाओं) के लिए आवश्यक है, लेकिन यह शुद्ध जावा परियोजनाओं के लिए आवश्यक नहीं है। ध्यान देने के लिए धन्यवाद, क्योंकि मुझे यकीन है कि यह अंततः किसी की मदद कर सकता है।
मार्टिन ज़ेटलर

इसने @MartinZeitler को बहुत धन्यवाद दिया
फैनडेज़
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.