0

I am developing an application, and every time I run it I get the message:

unfortunately myapp has stopped working

I can't find a solution in either StackOverflow or Google. Here is my code.

MainActivity.java

package com.example.hosni.map_app;
import android.os.Bundle;
import android.support.design.widget.FloatingActionButton;
import android.support.design.widget.Snackbar;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.view.View;
import android.view.Menu;
import android.view.MenuItem;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }

    protected boolean isRouteDisplayed() {
        return false;
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.menu_main, menu);
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle action bar item clicks here. The action bar will
        // automatically handle clicks on the Home/Up button, so long
        // as you specify a parent activity in AndroidManifest.xml.
        int id = item.getItemId();

        //noinspection SimplifiableIfStatement
        if (id == R.id.action_settings) {
            return true;
        }

        return super.onOptionsItemSelected(item);
    }
}

Logcat:

E/AndroidRuntime: FATAL EXCEPTION: mainjava.lang.RuntimeException: 
Unable to start activity ComponentInfo{com.example.hosni.map_app/com.example.hosni.map_app.MainActivity}: 
android.view.InflateException: Binary XML file line #15: Error inflating class com.google.android.maps.MapView
     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2180)
     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2230)
     at android.app.ActivityThread.access$600(ActivityThread.java:141)
     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1234)
     at android.os.Handler.dispatchMessage(Handler.java:99)
     at android.os.Looper.loop(Looper.java:137)
     at android.app.ActivityThread.main(ActivityThread.java:5041)
     at java.lang.reflect.Method.invokeNative(Native Method)
     at java.lang.reflect.Method.invoke(Method.java:511)
     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
     at dalvik.system.NativeStart.main(Native Method)
  Caused by: android.view.InflateException: 
  Binary XML file line #15: Error inflating class com.google.android.maps.MapView
     at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:698)
     at android.view.LayoutInflater.rInflate(LayoutInflater.java:746)
     at android.view.LayoutInflater.parseInclude(LayoutInflater.java:830)
     at android.view.LayoutInflater.rInflate(LayoutInflater.java:736)
     at android.view.LayoutInflater.inflate(LayoutInflater.java:489)
     at android.view.LayoutInflater.inflate(LayoutInflater.java:396)
     at android.view.LayoutInflater.inflate(LayoutInflater.java:352)
     at android.support.v7.app.AppCompatDelegateImplV7.setContentView(AppCompatDelegateImplV7.java:276)
     at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:136)
     at com.example.hosni.map_app.MainActivity.onCreate(MainActivity.java:21)
     at android.app.Activity.performCreate(Activity.java:5104)
     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1080)
     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2144)
     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2230) 
     at android.app.ActivityThread.access$600(ActivityThread.java:141) 
     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1234) 
     at android.os.Handler.dispatchMessage(Handler.java:99) 
     at android.os.Looper.loop(Looper.java:137) 
     at android.app.ActivityThread.main(ActivityThread.java:5041) 
     at java.lang.reflect.Method.invokeNative(Native Method) 
     at java.lang.reflect.Method.invoke(Method.java:511) 
     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793) 
     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560) 
     at dalvik.system.NativeStart.main(Native Method) 
  Caused by: java.lang.ClassNotFoundException: 
  Didn't find class "com.google.android.maps.MapView" on path: /data/app/com.example.hosni.map_app-1.apk
     at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:65)
     at java.lang.ClassLoader.loadClass(ClassLoader.java:501)
     at java.lang.ClassLoader.loadClass(ClassLoader.java:461)
     at android.view.LayoutInflater.createView(LayoutInflater.java:552)
     at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:687)
     at android.view.LayoutInflater.rInflate(LayoutInflater.java:746) 
     at android.view.LayoutInflater.parseInclude(LayoutInflater.java:830) 
     at android.view.LayoutInflater.rInflate(LayoutInflater.java:736) 
     at android.view.LayoutInflater.inflate(LayoutInflater.java:489) 
     at android.view.LayoutInflater.inflate(LayoutInflater.java:396) 
     at android.view.LayoutInflater.inflate(LayoutInflater.java:352) 
     at android.support.v7.app.AppCompatDelegateImplV7.setContentView(AppCompatDelegateImplV7.java:276) 
     at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:136) 
     at com.example.hosni.map_app.MainActivity.onCreate(MainActivity.java:21) 
     at android.app.Activity.performCreate(Activity.java:5104) 
     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1080) 
     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2144) 
     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2230) 
     at android.app.ActivityThread.access$600(ActivityThread.java:141) 
     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1234) 
     at android.os.Handler.dispatchMessage(Handler.java:99) 
     at android.os.Looper.loop(Looper.java:137) 
     at android.app.ActivityThread.main(ActivityThread.java:5041) 
     at java.lang.reflect.Method.invokeNative(Native Method) 
     at java.lang.reflect.Method.invoke(Method.java:511) 
     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793) 
     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560) 
     at dalvik.system.NativeStart.main(Native Method)                                                                   

xml code

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    app:layout_behavior="@string/appbar_scrolling_view_behavior"
    tools:context="com.example.hosni.map_app.MainActivity"
    tools:showIn="@layout/activity_main">

    <com.google.android.maps.MapView
        android:id="@+id/mapView"
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:apiKey="@string/mapKey"
        android:clickable="true"/>

</RelativeLayout>

Gradle:

apply plugin: 'com.android.application'

android {
    compileSdkVersion 23
    buildToolsVersion "23.0.2"

    defaultConfig {
        applicationId "com.example.hosni.map_app"
        minSdkVersion 15
        targetSdkVersion 20
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
    productFlavors {
    }
}

dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    testCompile 'junit:junit:4.12'
    compile 'com.android.support:appcompat-v7:23.3.0'
    compile 'com.android.support:design:23.3.0'
}

Could someone tell me what am I doing wrong?

wypieprz
  • 7,981
  • 4
  • 43
  • 46
capohosni
  • 1
  • 3

1 Answers1

2

Your log says:

Caused by: java.lang.ClassNotFoundException: Didn't find class "com.google.android.maps.MapView" on path: /data/app/com.example.hosni.map_app-1.apk

It sounds like you need to add compile dependency on Google Maps:

compile 'com.google.android.gms:play-services-maps:8.4.0'
Doug Stevenson
  • 297,357
  • 32
  • 422
  • 441
  • after adding compile 'com.google.android.gms:play-services-maps:8.4.0' I run it another time,but I get the same message: unfortunately myapp has stopped working logcat – capohosni Apr 13 '16 at 23:37