Leider, meine app funktioniert nicht mehr
Kann jemand klären, wo mein Fehler ist? Die Android-app stürzt ab mit der Fehlermeldung "Leider, meine app funktioniert nicht mehr". Der Absturz nur passiert, wenn ich mein activity_main.xml
enthält android:id="@+id/map"
:
<?xml version="1.0" encoding="utf-8"?>
<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"/>
Meine MainActivity.java Klasse ist ebenso einfach:
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
}
Habe ich die "google-play" Abhängigkeiten und ich bin targeting "Google APIs". Erneut, die app läuft gut, wenn ich nicht versuchen, um die Karte anzuzeigen.
Sind hier die LogCat Fehler:
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
Aktualisiert
Und hier ist das manifest
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.myfirstapp"
android:versionCode="1"
android:versionName="1.0" >
<!-- MAPS -->
<permission android:name="com.example.myfirstapp.permission.MAPS_RECEIVE" android:protectionLevel="signature"/>
<uses-permission android:name="com.example.myfirstapp.permission.MAPS_RECEIVE"/>
<uses-permission android:name="android.permission.INTERNET"/>
<!-- Allows the API to access Google web-based services -->
<uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES"/>
<!-- External storage for caching. -->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<!-- My Location -->
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<!-- Maps API needs OpenGL ES 2.0. -->
<uses-feature
android:glEsVersion="0x00020000"
android:required="true"/>
<!-- 8/17 oneX=16-->
<uses-sdk
android:minSdkVersion="12"
android:targetSdkVersion="17" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<!-- REMOVED user-library android:name="com.google.android.maps" /-->
<meta-data
android:name="com.google.android.maps.v2.API_KEY"
android:value="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"/>
<activity
android:name="com.example.myfirstapp.MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
UDPATED Neue LogCat da der Wechsel zu android:minSdkVersion="12" "mit dem MapFragment nur, wenn Sie sind targeting API 12 und oben. Andernfalls verwenden Sie SupportMapFragment."
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
- haben Sie Berechtigungen hinzuzufügen AndroidManifest.xml Datei?
- zeigen Sie Ihre manifest-Datei
- Hinzugefügt haben
MainActivity
im manifest ? - Prüfen Sie, ob MainActivity ist deklariert in der AndroidManifest-Datei?
- Posten Sie Ihre manifest-Datei, um Ihre Frage zu beantworten
- Ich habe aktualisiert die ursprüngliche Frage mit dem manifest. Danke!!!
- Ich sollte auch beachten, dass ich die Prüfung auf einem Android 4.1.1 läuft
- Entfernen <uses-library> tag seine nicht erforderlich, V2 Map
- Entfernt <uses-library> - tag
- möglich, Duplikat der Leider MyApp aufgehört hat. Wie kann ich dieses Problem lösen?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Es ist erforderlich, um
SupportMapFragment
wennAPI version is below 11
Vergessen Sie nicht, verlängern Sie Ihre Aktivität mit FragmentActivity
Definieren Sie Ihre Tätigkeit in der AndroidManifest wie diese
Als Sie definiert haben, die
android:minSdkVersion="11"
und dieMapFragment
wird nur unterstützt, auf die api 12 oder höher.So dass Sie
SupportMapFragment
stattMapFragment
wie folgt:Vergessen Sie nicht, verlängern Sie Ihre Tätigkeit mit
FragmentActivity
.Ändern AndroidManifest.xml
Und die Erlaubnis für anzeigen und Internet.
Ich habe das gleiche Problem, während einiger Tage, und Klonen Sie diese repo-hat mir sehr geholfen,
https://github.com/googlemaps/hellomap-android
Glück