Reputation: 21979
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:
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)
Upvotes: 3
Views: 2057
Reputation: 75798
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();
}
Upvotes: 6