简体   繁体   中英

Google Maps Didn't find class "com.google.android.gms.dynamic.zza"

I've been following this tutorial on implementing google maps android sdk and reached the error mentioned in the title. Crash details available at the end of this question. I've been following a lot of SO threads with no result. So far, some google also proofs nothing.

What failed fixes I've tried:

  • disable multidex
  • disable "Instant Run"
  • change/downgrading the versions fo various combination

Do you guys have clue(s)?

Here's my Gradle app config:

buildscript {
    repositories {
        maven { url 'https://maven.fabric.io/public' }
    }

    dependencies {
        classpath 'io.fabric.tools:gradle:1.+'
    }
}
apply plugin: 'com.android.application'
apply plugin: 'io.fabric'
apply plugin: 'realm-android'

repositories {
    maven { url 'https://maven.fabric.io/public' }
    google()
}

android {
    compileSdkVersion 28
    buildToolsVersion '28.0.3'
    useLibrary 'org.apache.http.legacy'

    defaultConfig {
        applicationId "com.akukurir.android"
        minSdkVersion 15
        targetSdkVersion 28
        versionCode 33
        versionName "1.7.7~beta6"

        multiDexEnabled true
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])

//    implementation 'io.nlopez.smartlocation:library:3.3.1'
    implementation('io.nlopez.smartlocation:library:3.3.3') {
        transitive = false
    }


    implementation('com.crashlytics.sdk.android:crashlytics:2.5.5@aar') {
        transitive = true
    }

    implementation 'com.android.support:multidex:1.0.3'

    //implementation 'com.android.support:appcompat-v7:23.1.1'
    //noinspection GradleCompatible
    implementation 'com.android.support:appcompat-v7:28.0.0'
    implementation 'com.android.support:animated-vector-drawable:28.0.0'
    implementation 'com.android.support:customtabs:28.0.0'
    implementation 'com.android.support:percent:28.0.0'


    implementation 'com.google.firebase:firebase-core:16.0.4'
    implementation 'com.google.firebase:firebase-messaging:17.3.3'
    implementation 'com.google.firebase:firebase-crash:16.2.1'
    implementation 'com.google.firebase:firebase-database:16.0.3'

    implementation 'com.google.android.gms:play-services-base:16.0.1'
    implementation 'com.google.android.gms:play-services-drive:16.0.0'
    implementation 'com.google.android.gms:play-services-location:16.0.0'
    implementation 'com.google.android.gms:play-services-gcm:16.0.0'

    implementation 'com.github.gcacace:signature-pad:1.0.1'
    implementation 'com.rengwuxian.materialedittext:library:2.0.3'
    implementation 'com.pixplicity.easyprefs:library:1.6'
    implementation 'com.squareup.picasso:picasso:2.5.2'
    implementation 'com.akexorcist:googledirectionlibrary:1.0.3'
    implementation 'com.squareup.okhttp3:okhttp:3.2.0'
    implementation 'com.wdullaer:materialdatetimepicker:2.4.0'
    implementation 'com.karumi:dexter:5.0.0'
    testImplementation 'junit:junit:4.12'
}
apply plugin: 'com.google.gms.google-services'

Here's the project Gradle config:

// Top-level build file where you can add configuration options common to all sub-projects/modules.

buildscript {
    repositories {
        jcenter()
        maven {
            url 'https://maven.google.com/'
            name 'Google'
        }
        google()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.2.1'
        classpath 'io.realm:realm-gradle-plugin:3.3.2'

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
        classpath 'com.google.gms:google-services:4.1.0'
    }
}

allprojects {
    repositories {
        jcenter()
    }
}

task clean(type: Delete) {
    delete rootProject.buildDir
}

ext {
    appName = "AkuKurir"
}

Here is the XML:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">
    <fragment xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:id="@+id/maps"
        tools:context=".MainActivity"
        android:name="com.google.android.gms.maps.SupportMapFragment" />

    <LinearLayout
        android:id="@+id/layoutButtonTop"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:visibility="gone"
        android:paddingTop="10dp"
        android:paddingLeft="10dp"
        android:paddingRight="10dp"
        android:orientation="horizontal">

        <Button
            android:id="@+id/bKerjaan"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:onClick="bKerjaan_clicked"
            android:text="Kerjaan (0)"
            android:textSize="16sp" />

        <Button
            android:id="@+id/bMinta"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:onClick="bMinta_clicked"
            android:text="Minta (0)"
            android:textSize="16sp" />
    </LinearLayout>

    <LinearLayout
        android:id="@+id/layoutButtonBelow"
        android:layout_alignParentBottom="true"
        android:layout_width="match_parent"
        android:background="@color/white"
        android:layout_height="wrap_content">
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:paddingLeft="16dp"
            android:paddingRight="16dp"
            android:orientation="vertical">

            <Button
                android:id="@+id/bBidding"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:onClick="bBidding_clicked"
                android:background="@drawable/roundedbutton"
                android:text="Bidding (0)"
                android:layout_marginBottom="4dp"
                android:layout_marginTop="8dp"
                android:textSize="16sp" />

            <Button
                android:id="@+id/bTugas"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:onClick="bTugas_clicked"
                android:background="@drawable/roundedbutton"
                android:text="Tugas (0)"
                android:layout_marginBottom="4dp"
                android:layout_marginTop="4dp"
                android:textSize="16sp" />

            <Button
                android:id="@+id/bPendapatan"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:onClick="bPendapatan_clicked"
                android:background="@drawable/roundedbutton"
                android:layout_marginBottom="8dp"
                android:layout_marginTop="4dp"
                android:text="Pendapatan"
                android:textSize="16sp" />
        </LinearLayout>
    </LinearLayout>
    <ImageButton
        android:id="@+id/ibRefresh"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_above="@id/layoutButtonBelow"
        android:layout_alignParentEnd="true"
        android:layout_alignParentRight="true"
        android:layout_marginBottom="8dp"
        android:layout_marginRight="8dp"
        android:src="@drawable/ic_action_refresh" />
</RelativeLayout>

Crash logs:

2018-10-12 14:50:59.186 26804-26804/? E/UncaughtException: java.lang.RuntimeException: Unable to start activity ComponentInfo{com.akukurir.android/com.akukurir.android.MainActivity}: android.view.InflateException: Binary XML file line #6: Binary XML file line #6: Error inflating class fragment
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2792)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2870)
        at android.app.ActivityThread.-wrap11(Unknown Source:0)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1601)
        at android.os.Handler.dispatchMessage(Handler.java:106)
        at android.os.Looper.loop(Looper.java:172)
        at android.app.ActivityThread.main(ActivityThread.java:6590)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807)
     Caused by: android.view.InflateException: Binary XML file line #6: Binary XML file line #6: Error inflating class fragment
     Caused by: android.view.InflateException: Binary XML file line #6: Error inflating class fragment
     Caused by: android.support.v4.app.Fragment$InstantiationException: Unable to instantiate fragment com.google.android.gms.maps.SupportMapFragment: calling Fragment constructor caused an exception
        at android.support.v4.app.Fragment.instantiate(Fragment.java:465)
        at android.support.v4.app.FragmentContainer.instantiate(FragmentContainer.java:50)
        at android.support.v4.app.FragmentManagerImpl.onCreateView(FragmentManager.java:3736)
        at android.support.v4.app.FragmentController.onCreateView(FragmentController.java:120)
        at android.support.v4.app.FragmentActivity.dispatchFragmentsOnCreateView(FragmentActivity.java:405)
        at android.support.v4.app.FragmentActivity.onCreateView(FragmentActivity.java:387)
        at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:780)
        at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:730)
        at android.view.LayoutInflater.rInflate(LayoutInflater.java:863)
        at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:824)
        at android.view.LayoutInflater.inflate(LayoutInflater.java:515)
        at android.view.LayoutInflater.inflate(LayoutInflater.java:423)
        at android.view.LayoutInflater.inflate(LayoutInflater.java:374)
        at com.android.internal.policy.PhoneWindow.setContentView(PhoneWindow.java:419)
        at android.app.Activity.setContentView(Activity.java:2683)
        at com.akukurir.android.MainActivity.onCreate(MainActivity.java:80)
        at android.app.Activity.performCreate(Activity.java:7023)
        at android.app.Activity.performCreate(Activity.java:7014)
        at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1215)
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2745)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2870)
        at android.app.ActivityThread.-wrap11(Unknown Source:0)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1601)
        at android.os.Handler.dispatchMessage(Handler.java:106)
        at android.os.Looper.loop(Looper.java:172)
        at android.app.ActivityThread.main(ActivityThread.java:6590)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807)
     Caused by: java.lang.reflect.InvocationTargetException
        at java.lang.reflect.Constructor.newInstance0(Native Method)
        at java.lang.reflect.Constructor.newInstance(Constructor.java:334)
        at android.support.v4.app.Fragment.instantiate(Fragment.java:443)
        at android.support.v4.app.FragmentContainer.instantiate(FragmentContainer.java:50) 
        at android.support.v4.app.FragmentManagerImpl.onCreateView(FragmentManager.java:3736) 
        at android.support.v4.app.FragmentController.onCreateView(FragmentController.java:120) 
        at android.support.v4.app.FragmentActivity.dispatchFragmentsOnCreateView(FragmentActivity.java:405) 
        at android.support.v4.app.FragmentActivity.onCreateView(FragmentActivity.java:387) 
        at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:780) 
        at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:730) 
        at android.view.LayoutInflater.rInflate(LayoutInflater.java:863) 
        at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:824) 
        at android.view.LayoutInflater.inflate(LayoutInflater.java:515) 
        at android.view.LayoutInflater.inflate(LayoutInflater.java:423) 
        at android.view.LayoutInflater.inflate(LayoutInflater.java:374) 
        at com.android.internal.policy.PhoneWindow.setContentView(PhoneWindow.java:419) 
        at android.app.Activity.setContentView(Activity.java:2683) 
        at com.akukurir.android.MainActivity.onCreate(MainActivity.java:80) 
        at android.app.Activity.performCreate(Activity.java:7023) 
        at android.app.Activity.performCreate(Activity.java:7014) 
        at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1215) 
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2745) 
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2870) 
        at android.app.ActivityThread.-wrap11(Unknown Source:0) 
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1601) 
        at android.os.Handler.dispatchMessage(Handler.java:106) 
        at android.os.Looper.loop(Looper.java:172) 
        at android.app.ActivityThread.main(ActivityThread.java:6590) 
        at java.lang.reflect.Method.invoke(Native Method) 
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438) 
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807) 
     Caused by: java.lang.NoClassDefFoundError: Failed resolution of: Lcom/google/android/gms/maps/SupportMapFragment$zzb;
        at com.google.android.gms.maps.SupportMapFragment.<init>(Unknown Source:3)
        at java.lang.reflect.Constructor.newInstance0(Native Method) 
        at java.lang.reflect.Constructor.newInstance(Constructor.java:334) 
        at android.support.v4.app.Fragment.instantiate(Fragment.java:443) 
        at android.support.v4.app.FragmentContainer.instantiate(FragmentContainer.java:50) 
        at android.support.v4.app.FragmentManagerImpl.onCreateView(FragmentManager.java:3736) 
        at android.support.v4.app.FragmentController.onCreateView(FragmentController.java:120) 
        at android.support.v4.app.FragmentActivity.dispatchFragmentsOnCreateView(FragmentActivity.java:405) 
        at android.support.v4.app.FragmentActivity.onCreateView(FragmentActivity.java:387) 
        at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:780) 
        at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:730) 
        at android.view.LayoutInflater.rInflate(LayoutInflater.java:863) 
        at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:824) 
        at android.view.LayoutInflater.inflate(LayoutInflater.java:515) 
        at android.view.LayoutInflater.inflate(LayoutInflater.java:423) 
        at android.view.LayoutInflater.inflate(LayoutInflater.java:374) 
        at com.android.internal.policy.PhoneWindow.setContentView(PhoneWindow.java:419) 
        at android.app.Activity.setContentView(Activity.java:2683) 
        at com.akukurir.android.MainActivity.onCreate(MainActivity.java:80) 
        at android.app.Activity.performCreate(Activity.java:7023) 
        at android.app.Activity.performCreate(Activity.java:7014) 
        at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1215) 
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2745) 
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2870) 
        at android.app.ActivityThread.-wrap11(Unknown Source:0) 
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1601) 
        at android.os.Handler.dispatchMessage(Handler.java:106) 
        at android.os.Looper.loop(Looper.java:172) 
        at android.app.ActivityThread.main(ActivityThread.java:6590) 
        at java.lang.reflect.Method.invoke(Native Method) 
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438) 
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807) 
     Caused by: java.lang.ClassNotFoundException: com.google.android.gms.maps.SupportMapFragment$zzb
        at java.lang.VMClassLoader.findLoadedClass(Native Method)
2018-10-12 14:50:59.186 26804-26804/? E/UncaughtException:     at java.lang.ClassLoader.findLoadedClass(ClassLoader.java:738)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:363)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:312)
            ... 32 more
     Caused by: java.lang.NoClassDefFoundError: Failed resolution of: Lcom/google/android/gms/dynamic/zza;
            ... 32 more
     Caused by: java.lang.ClassNotFoundException: Didn't find class "com.google.android.gms.dynamic.zza" on path: DexPathList[[zip file "/data/app/com.akukurir.android-AeYi8U9gmESv2Td7QUvHGg==/base.apk"],nativeLibraryDirectories=[/data/app/com.akukurir.android-AeYi8U9gmESv2Td7QUvHGg==/lib/arm64, /data/app/com.akukurir.android-AeYi8U9gmESv2Td7QUvHGg==/base.apk!/lib/arm64-v8a, /system/lib64, /system/vendor/lib64]]
        at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:125)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:379)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:312)

Error inflating class fragment - Unable to instantiate fragment com.google.android.gms.maps.SupportMapFragment

You should add play-services-maps in your build.gradle section.

implementation "com.google.android.gms:play-services-maps:$googlePlayVersion" //like-->15.0.0

XML

  <fragment
   class="com.google.android.gms.maps.SupportMapFragment"

Note

Your onCreate(Bundle savedInstanceState) section will

mapFragment = ((SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.your_id));
        if (mapFragment != null) {
            mapFragment.getMapAsync(new OnMapReadyCallback() {
                @Override
                public void onMapReady(GoogleMap map) {
                    //loadMap(map);
                }
            });
        } else {
            Toast.makeText(this, "Error - Map Fragment was null!!", Toast.LENGTH_SHORT).show();
        }

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM