Note that there are some explanatory texts on larger screens.

plurals
  1. POUnfortunately, my app has stopped working
    text
    copied!<p>Can anyone clarify where my error is? The Android app crashes with the error, "Unfortunately, my app has stopped working". The crash only happens when my <code>activity_main.xml</code> contains <code>android:id="@+id/map"</code>: </p> <pre><code>&lt;?xml version="1.0" encoding="utf-8"?&gt; &lt;fragment xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/map" android:layout_width="match_parent" android:layout_height="match_parent" class="com.google.android.gms.maps.MapFragment"/&gt; </code></pre> <p>My MainActivity.java class is equally simple:</p> <pre><code>public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } } </code></pre> <p>I have added the "google-play" dependencies and I am targeting "Google APIs". Again, the app runs fine when I do not attempt to display the map.</p> <p>Here are the LogCat Errors:</p> <pre><code>01-11 02:04:24.608: E/AndroidRuntime(14416): FATAL EXCEPTION: main 01-11 02:04:24.608: E/AndroidRuntime(14416): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.example.myfirstapp/com.example.myfirstapp.MainActivity}: java.lang.ClassNotFoundException: com.example.myfirstapp.MainActivity 01-11 02:04:24.608: E/AndroidRuntime(14416): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2267) 01-11 02:04:24.608: E/AndroidRuntime(14416): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2387) 01-11 02:04:24.608: E/AndroidRuntime(14416): at android.app.ActivityThread.access$600(ActivityThread.java:151) 01-11 02:04:24.608: E/AndroidRuntime(14416): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1331) 01-11 02:04:24.608: E/AndroidRuntime(14416): at android.os.Handler.dispatchMessage(Handler.java:99) 01-11 02:04:24.608: E/AndroidRuntime(14416): at android.os.Looper.loop(Looper.java:155) 01-11 02:04:24.608: E/AndroidRuntime(14416): at android.app.ActivityThread.main(ActivityThread.java:5485) 01-11 02:04:24.608: E/AndroidRuntime(14416): at java.lang.reflect.Method.invokeNative(Native Method) 01-11 02:04:24.608: E/AndroidRuntime(14416): at java.lang.reflect.Method.invoke(Method.java:511) 01-11 02:04:24.608: E/AndroidRuntime(14416): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1028) 01-11 02:04:24.608: E/AndroidRuntime(14416): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:795) 01-11 02:04:24.608: E/AndroidRuntime(14416): at dalvik.system.NativeStart.main(Native Method) 01-11 02:04:24.608: E/AndroidRuntime(14416): Caused by: java.lang.ClassNotFoundException: com.example.myfirstapp.MainActivity 01-11 02:04:24.608: E/AndroidRuntime(14416): at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:61) 01-11 02:04:24.608: E/AndroidRuntime(14416): at java.lang.ClassLoader.loadClass(ClassLoader.java:501) 01-11 02:04:24.608: E/AndroidRuntime(14416): at java.lang.ClassLoader.loadClass(ClassLoader.java:461) 01-11 02:04:24.608: E/AndroidRuntime(14416): at android.app.Instrumentation.newActivity(Instrumentation.java:1069) 01-11 02:04:24.608: E/AndroidRuntime(14416): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2258) 01-11 02:04:24.608: E/AndroidRuntime(14416): ... 11 more </code></pre> <p><strong>Updated</strong> And here is the manifest</p> <pre><code>&lt;?xml version="1.0" encoding="utf-8"?&gt; &lt;manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.myfirstapp" android:versionCode="1" android:versionName="1.0" &gt; &lt;!-- MAPS --&gt; &lt;permission android:name="com.example.myfirstapp.permission.MAPS_RECEIVE" android:protectionLevel="signature"/&gt; &lt;uses-permission android:name="com.example.myfirstapp.permission.MAPS_RECEIVE"/&gt; &lt;uses-permission android:name="android.permission.INTERNET"/&gt; &lt;!-- Allows the API to access Google web-based services --&gt; &lt;uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES"/&gt; &lt;!-- External storage for caching. --&gt; &lt;uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/&gt; &lt;!-- My Location --&gt; &lt;uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/&gt; &lt;uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/&gt; &lt;!-- Maps API needs OpenGL ES 2.0. --&gt; &lt;uses-feature android:glEsVersion="0x00020000" android:required="true"/&gt; &lt;!-- 8/17 oneX=16--&gt; &lt;uses-sdk android:minSdkVersion="12" android:targetSdkVersion="17" /&gt; &lt;application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" &gt; &lt;!-- REMOVED user-library android:name="com.google.android.maps" / --&gt; &lt;meta-data android:name="com.google.android.maps.v2.API_KEY" android:value="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"/&gt; &lt;activity android:name="com.example.myfirstapp.MainActivity" android:label="@string/app_name" &gt; &lt;intent-filter&gt; &lt;action android:name="android.intent.action.MAIN" /&gt; &lt;category android:name="android.intent.category.LAUNCHER" /&gt; &lt;/intent-filter&gt; &lt;/activity&gt; &lt;/application&gt; &lt;/manifest&gt; </code></pre> <p><strong>UDPATED</strong> New LogCat since changing android:minSdkVersion="12" "Use MapFragment only if you are targeting API 12 and above. Otherwise, use SupportMapFragment."</p> <pre><code>01-11 11:26:23.267: E/AndroidRuntime(27646): FATAL EXCEPTION: main 01-11 11:26:23.267: E/AndroidRuntime(27646): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.myfirstapp/com.example.myfirstapp.MainActivity}: android.view.InflateException: Binary XML file line #7: Error inflating class fragment 01-11 11:26:23.267: E/AndroidRuntime(27646): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2351) 01-11 11:26:23.267: E/AndroidRuntime(27646): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2387) 01-11 11:26:23.267: E/AndroidRuntime(27646): at android.app.ActivityThread.access$600(ActivityThread.java:151) 01-11 11:26:23.267: E/AndroidRuntime(27646): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1331) 01-11 11:26:23.267: E/AndroidRuntime(27646): at android.os.Handler.dispatchMessage(Handler.java:99) 01-11 11:26:23.267: E/AndroidRuntime(27646): at android.os.Looper.loop(Looper.java:155) 01-11 11:26:23.267: E/AndroidRuntime(27646): at android.app.ActivityThread.main(ActivityThread.java:5485) 01-11 11:26:23.267: E/AndroidRuntime(27646): at java.lang.reflect.Method.invokeNative(Native Method) 01-11 11:26:23.267: E/AndroidRuntime(27646): at java.lang.reflect.Method.invoke(Method.java:511) 01-11 11:26:23.267: E/AndroidRuntime(27646): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1028) 01-11 11:26:23.267: E/AndroidRuntime(27646): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:795) 01-11 11:26:23.267: E/AndroidRuntime(27646): at dalvik.system.NativeStart.main(Native Method) 01-11 11:26:23.267: E/AndroidRuntime(27646): Caused by: android.view.InflateException: Binary XML file line #7: Error inflating class fragment 01-11 11:26:23.267: E/AndroidRuntime(27646): at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:704) 01-11 11:26:23.267: E/AndroidRuntime(27646): at android.view.LayoutInflater.rInflate(LayoutInflater.java:746) 01-11 11:26:23.267: E/AndroidRuntime(27646): at android.view.LayoutInflater.inflate(LayoutInflater.java:489) 01-11 11:26:23.267: E/AndroidRuntime(27646): at android.view.LayoutInflater.inflate(LayoutInflater.java:396) 01-11 11:26:23.267: E/AndroidRuntime(27646): at android.view.LayoutInflater.inflate(LayoutInflater.java:352) 01-11 11:26:23.267: E/AndroidRuntime(27646): at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:358) 01-11 11:26:23.267: E/AndroidRuntime(27646): at android.app.Activity.setContentView(Activity.java:1912) 01-11 11:26:23.267: E/AndroidRuntime(27646): at com.example.myfirstapp.MainActivity.onCreate(MainActivity.java:12) 01-11 11:26:23.267: E/AndroidRuntime(27646): at android.app.Activity.performCreate(Activity.java:5066) 01-11 11:26:23.267: E/AndroidRuntime(27646): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1101) 01-11 11:26:23.267: E/AndroidRuntime(27646): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2307) 01-11 11:26:23.267: E/AndroidRuntime(27646): ... 11 more 01-11 11:26:23.267: E/AndroidRuntime(27646): Caused by: android.app.Fragment$InstantiationException: Unable to instantiate fragment com.google.android.gms.maps.MapFragment: make sure class name exists, is public, and has an empty constructor that is public 01-11 11:26:23.267: E/AndroidRuntime(27646): at android.app.Fragment.instantiate(Fragment.java:624) 01-11 11:26:23.267: E/AndroidRuntime(27646): at android.app.Fragment.instantiate(Fragment.java:584) 01-11 11:26:23.267: E/AndroidRuntime(27646): at android.app.Activity.onCreateView(Activity.java:4714) 01-11 11:26:23.267: E/AndroidRuntime(27646): at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:680) 01-11 11:26:23.267: E/AndroidRuntime(27646): ... 21 more 01-11 11:26:23.267: E/AndroidRuntime(27646): Caused by: java.lang.ClassNotFoundException: com.google.android.gms.maps.MapFragment 01-11 11:26:23.267: E/AndroidRuntime(27646): at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:61) 01-11 11:26:23.267: E/AndroidRuntime(27646): at java.lang.ClassLoader.loadClass(ClassLoader.java:501) 01-11 11:26:23.267: E/AndroidRuntime(27646): at java.lang.ClassLoader.loadClass(ClassLoader.java:461) 01-11 11:26:23.267: E/AndroidRuntime(27646): at android.app.Fragment.instantiate(Fragment.java:606) 01-11 11:26:23.267: E/AndroidRuntime(27646): ... 24 more </code></pre>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload