0

I have no clue why it is giving the following error whenever i try to run my map application. The logcat is as follows

07-21 12:03:55.427 21046-21046/com.dutt.rishabh.locator E/AndroidRuntime:    FATAL EXCEPTION: main
Process: com.dutt.rishabh.locator, PID: 21046
java.lang.RuntimeException: Unable to get provider   com.google.firebase.provider.FirebaseInitProvider:   java.lang.ClassNotFoundException: Didn't find class   "com.google.firebase.provider.FirebaseInitProvider" on path: DexPathList[[zip  file "/data/app/com.dutt.rishabh.locator-2.apk"],nativeLibraryDirectories= [/data/app-lib/com.dutt.rishabh.locator-2, /vendor/lib, /system/lib]]
 at   android.app.ActivityThread.installProvider(ActivityThread.java:5064)
 at android.app.ActivityThread.installContentProviders(ActivityThread.java:4635)
 at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4575)
 at android.app.ActivityThread.access$1600(ActivityThread.java:151)
 at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1414)
 at android.os.Handler.dispatchMessage(Handler.java:110)
 at android.os.Looper.loop(Looper.java:193)
 at android.app.ActivityThread.main(ActivityThread.java:5345)
 at java.lang.reflect.Method.invokeNative(Native Method)
 at java.lang.reflect.Method.invoke(Method.java:515)
 at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:828)
 at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:644)
 at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.ClassNotFoundException: Didn't find class "com.google.firebase.provider.FirebaseInitProvider" on path: DexPathList[[zip file "/data/app/com.dutt.rishabh.locator-2.apk"],nativeLibraryDirectories=[/data/app-lib/com.dutt.rishabh.locator-2, /vendor/lib, /system/lib]]
 at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)
 at java.lang.ClassLoader.loadClass(ClassLoader.java:497)
 at java.lang.ClassLoader.loadClass(ClassLoader.java:457)
 at android.app.ActivityThread.installProvider(ActivityThread.java:5049)
 at android.app.ActivityThread.installContentProviders(ActivityThread.java:4635) 
 at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4575) 
 at android.app.ActivityThread.access$1600(ActivityThread.java:151) 
 at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1414) 
 at android.os.Handler.dispatchMessage(Handler.java:110) 
 at android.os.Looper.loop(Looper.java:193) 
 at android.app.ActivityThread.main(ActivityThread.java:5345) 
 at java.lang.reflect.Method.invokeNative(Native Method) 
 at java.lang.reflect.Method.invoke(Method.java:515) 
 at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:828) 
 at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:644) 
 at dalvik.system.NativeStart.main(Native Method) 

The source code is

package com.dutt.rishabh.locator;

import android.support.v4.app.FragmentActivity;
import android.os.Bundle;

import com.google.android.gms.maps.CameraUpdateFactory;
import com.google.android.gms.maps.GoogleMap;
import com.google.android.gms.maps.OnMapReadyCallback;
import com.google.android.gms.maps.SupportMapFragment;
import com.google.android.gms.maps.model.LatLng; 
import com.google.android.gms.maps.model.MarkerOptions;

public class MapsActivity extends FragmentActivity implements OnMapReadyCallback {

    private GoogleMap mMap;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_maps);
        // Obtain the SupportMapFragment and get notified when the map is ready to be used.
        SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager()
                .findFragmentById(R.id.map);
        mapFragment.getMapAsync(this);
    }


    @Override
    public void onMapReady(GoogleMap googleMap) {
        mMap = googleMap;

        // Add a marker in Sydney and move the camera
        LatLng sydney = new LatLng(-34, 151);
        mMap.addMarker(new MarkerOptions().position(sydney).title("Marker in Sydney"));
        mMap.moveCamera(CameraUpdateFactory.newLatLng(sydney));
    }
}

The gradle build file

    apply plugin: 'com.android.application'

android {
    compileSdkVersion 24
    buildToolsVersion "24.0.0"
    defaultConfig {
        applicationId "com.dutt.rishabh.locator"
        minSdkVersion 15
        targetSdkVersion 24
        multiDexEnabled true
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner   "android.support.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
        exclude group: 'com.android.support', module: 'support-annotations'
    })
    compile 'com.android.support:appcompat-v7:24.0.0'
    compile 'com.google.android.gms:play-services:9.2.0'
    testCompile 'junit:junit:4.12'
}

This is my application but it always gives the error mentioned above.Please help needed! The above problem was solved but now it gives the following error.

07-21 12:32:20.223 26903-26903/com.dutt.rishabh.locator E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.dutt.rishabh.locator, PID: 26903
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.dutt.rishabh.locator/com.dutt.rishabh.locator.MapsActivity}: android.view.InflateException: Binary XML file line #4: Error inflating class fragment
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2389)
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2441)
    at android.app.ActivityThread.access$900(ActivityThread.java:151)
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1354)
    at android.os.Handler.dispatchMessage(Handler.java:110)
    at android.os.Looper.loop(Looper.java:193)
    at android.app.ActivityThread.main(ActivityThread.java:5345)
    at java.lang.reflect.Method.invokeNative(Native Method)
    at java.lang.reflect.Method.invoke(Method.java:515)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:828)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:644)
    at dalvik.system.NativeStart.main(Native Method)
 Caused by: android.view.InflateException: Binary XML file line #4: Error inflating class fragment
    at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:713)
    at android.view.LayoutInflater.rInflate(LayoutInflater.java:755)
    at android.view.LayoutInflater.inflate(LayoutInflater.java:492)
    at android.view.LayoutInflater.inflate(LayoutInflater.java:397)
    at android.view.LayoutInflater.inflate(LayoutInflater.java:353)
    at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:341)
    at android.app.Activity.setContentView(Activity.java:1948)
    at com.dutt.rishabh.locator.MapsActivity.onCreate(MapsActivity.java:20)
    at android.app.Activity.performCreate(Activity.java:5343)
    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1088)
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2343)
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2441) 
    at android.app.ActivityThread.access$900(ActivityThread.java:151) 
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1354) 
    at android.os.Handler.dispatchMessage(Handler.java:110) 
    at android.os.Looper.loop(Looper.java:193) 
    at android.app.ActivityThread.main(ActivityThread.java:5345) 
    at java.lang.reflect.Method.invokeNative(Native Method) 
    at java.lang.reflect.Method.invoke(Method.java:515) 
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:828) 
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:644) 
    at dalvik.system.NativeStart.main(Native Method) 
 Caused by: java.lang.NullPointerException: name == null
    at java.lang.VMClassLoader.findLoadedClass(Native Method)
    at java.lang.ClassLoader.findLoadedClass(ClassLoader.java:350)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:487)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:457)
    at android.support.v4.app.Fragment.isSupportFragmentClass(Fragment.java:464)
    at android.support.v4.app.FragmentManagerImpl.onCreateView(FragmentManager.java:2373)
    at android.support.v4.app.FragmentController.onCreateView(FragmentController.java:120)
    at android.support.v4.app.FragmentActivity.dispatchFragmentsOnCreateView(FragmentActivity.java:374)
    at android.support.v4.app.BaseFragmentActivityHoneycomb.onCreateView(BaseFragmentActivityHoneycomb.java:33)
    at android.support.v4.app.FragmentActivity.onCreateView(FragmentActivity.java:75)
    at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:689)
    at android.view.LayoutInflater.rInflate(LayoutInflater.java:755) 
    at android.view.LayoutInflater.inflate(LayoutInflater.java:492) 
    at android.view.LayoutInflater.inflate(LayoutInflater.java:397) 
    at android.view.LayoutInflater.inflate(LayoutInflater.java:353) 
    at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:341) 
    at android.app.Activity.setContentView(Activity.java:1948) 
    at com.dutt.rishabh.locator.MapsActivity.onCreate(MapsActivity.java:20) 
    at android.app.Activity.performCreate(Activity.java:5343) 
    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1088) 
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2343) 
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2441) 
    at android.app.ActivityThread.access$900(ActivityThread.java:151) 
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1354) 
    at android.os.Handler.dispatchMessage(Handler.java:110) 
    at android.os.Looper.loop(Looper.java:193) 
    at android.app.ActivityThread.main(ActivityThread.java:5345) 
    at java.lang.reflect.Method.invokeNative(Native Method) 
    at java.lang.reflect.Method.invoke(Method.java:515) 
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:828) 
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:644) 
    at dalvik.system.NativeStart.main(Native Method) 

The XML file is

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_height="match_parent"
    android:layout_width="match_parent">
<fragment xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:map="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/map"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="com.dutt.rishabh.locator.MapsActivity" />
</LinearLayout> 

Kindly help in this case.

3

2 Answers 2

6

Don't include the whole play services library but use the one that you need, I think that replacing the line:

compile 'com.google.android.gms:play-services:9.2.0'

with:

compile 'com.google.android.gms:play-services-maps:9.2.0'

should solve your problem

Sign up to request clarification or add additional context in comments.

3 Comments

@Rishabh glad it worked :) Btw now it crashes because name == null , I don't know where in the code you're setting that but it's causing the crash
Can u explain please?
@Rishabh I don't know because I don't have the full code, you should setup some breakpoints and check where it's crashing
0

As part of enabling Google APIs or Firebase services in your Android application you may have to add the google-services plugin to your root build.gradle file:

dependencies {
    classpath 'com.google.gms:google-services:3.0.0'
    // ...
}

Then at the bottom of your app/build.gradle add:

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

Read more at The Google Services Gradle Plugin

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.