2016-04-20 5 views
0

um ehrlich zu sein, ich weiß nicht, was den Fehler verursacht habe, verwende ich sie zum ersten Mal. würden Sie mir bitte dabei helfen. Ich versuche nur, die Google Maps API in die FragmentActivity zu starten. ist dies die logcatFehler mit Google Maps API und Fragmentaktivität

04-20 19:35:38.008: E/AndroidRuntime(3484): FATAL EXCEPTION: main 
04-20 19:35:38.008: E/AndroidRuntime(3484): Process: com.mom, PID: 3484 
04-20 19:35:38.008: E/AndroidRuntime(3484): java.lang.NoClassDefFoundError: Failed resolution of: Lcom/mom/Map_activity; 
04-20 19:35:38.008: E/AndroidRuntime(3484):  at com.mom.MainActivity$2.onClick(MainActivity.java:88) 
04-20 19:35:38.008: E/AndroidRuntime(3484):  at android.view.View.performClick(View.java:4856) 
04-20 19:35:38.008: E/AndroidRuntime(3484):  at android.view.View$PerformClick.run(View.java:19956) 
04-20 19:35:38.008: E/AndroidRuntime(3484):  at android.os.Handler.handleCallback(Handler.java:739) 
04-20 19:35:38.008: E/AndroidRuntime(3484):  at android.os.Handler.dispatchMessage(Handler.java:95) 
04-20 19:35:38.008: E/AndroidRuntime(3484):  at android.os.Looper.loop(Looper.java:211) 
04-20 19:35:38.008: E/AndroidRuntime(3484):  at android.app.ActivityThread.main(ActivityThread.java:5389) 
04-20 19:35:38.008: E/AndroidRuntime(3484):  at java.lang.reflect.Method.invoke(Native Method) 
04-20 19:35:38.008: E/AndroidRuntime(3484):  at java.lang.reflect.Method.invoke(Method.java:372) 
04-20 19:35:38.008: E/AndroidRuntime(3484):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1020) 
04-20 19:35:38.008: E/AndroidRuntime(3484):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:815) 
04-20 19:35:38.008: E/AndroidRuntime(3484): Caused by: java.lang.ClassNotFoundException: Didn't find class "com.mom.Map_activity" on path: DexPathList[[zip file "/system/framework/com.google.android.maps.jar", zip file "/data/app/com.mom-1/base.apk"],nativeLibraryDirectories=[/vendor/lib, /system/lib]] 
04-20 19:35:38.008: E/AndroidRuntime(3484):  at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56) 
04-20 19:35:38.008: E/AndroidRuntime(3484):  at java.lang.ClassLoader.loadClass(ClassLoader.java:511) 
04-20 19:35:38.008: E/AndroidRuntime(3484):  at java.lang.ClassLoader.loadClass(ClassLoader.java:469) 
04-20 19:35:38.008: E/AndroidRuntime(3484):  ... 11 more 
04-20 19:35:38.008: E/AndroidRuntime(3484):  Suppressed: java.lang.NoClassDefFoundError: com.mom.Map_activity 
04-20 19:35:38.008: E/AndroidRuntime(3484):   at dalvik.system.DexFile.defineClassNative(Native Method) 
04-20 19:35:38.008: E/AndroidRuntime(3484):   at dalvik.system.DexFile.defineClass(DexFile.java:226) 
04-20 19:35:38.008: E/AndroidRuntime(3484):   at dalvik.system.DexFile.loadClassBinaryName(DexFile.java:219) 
04-20 19:35:38.008: E/AndroidRuntime(3484):   at dalvik.system.DexPathList.findClass(DexPathList.java:321) 
04-20 19:35:38.008: E/AndroidRuntime(3484):   at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:54) 
04-20 19:35:38.008: E/AndroidRuntime(3484):   ... 13 more 
04-20 19:35:38.008: E/AndroidRuntime(3484):  Suppressed: java.lang.ClassNotFoundException: com.mom.Map_activity 
04-20 19:35:38.008: E/AndroidRuntime(3484):   at java.lang.Class.classForName(Native Method) 
04-20 19:35:38.008: E/AndroidRuntime(3484):   at java.lang.BootClassLoader.findClass(ClassLoader.java:781) 
04-20 19:35:38.008: E/AndroidRuntime(3484):   at java.lang.BootClassLoader.loadClass(ClassLoader.java:841) 
04-20 19:35:38.008: E/AndroidRuntime(3484):   at java.lang.ClassLoader.loadClass(ClassLoader.java:504) 
04-20 19:35:38.008: E/AndroidRuntime(3484):   ... 12 more 
04-20 19:35:38.008: E/AndroidRuntime(3484):  Caused by: java.lang.NoClassDefFoundError: Class not found using the boot class loader; no stack available 

und dies ist die Klassen

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

public class Map_activity extends FragmentActivity { 

    public static android.support.v4.app.FragmentManager fragmentManager; 

    @SuppressLint("NewApi") 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.location_fragment); 

     fragmentManager = getSupportFragmentManager(); 
    } 

} 

und diese

import android.annotation.SuppressLint; 
import android.app.Fragment; 
import android.os.Bundle; 
import android.view.LayoutInflater; 
import android.view.View; 
import android.view.ViewGroup; 
import com.google.android.gms.maps.CameraUpdateFactory; 
import com.google.android.gms.maps.GoogleMap; 
import com.google.android.gms.maps.MapView; 
import com.google.android.gms.maps.MapsInitializer; 
import com.google.android.gms.maps.model.BitmapDescriptorFactory; 
import com.google.android.gms.maps.model.CameraPosition; 
import com.google.android.gms.maps.model.LatLng; 
import com.google.android.gms.maps.model.MarkerOptions; 

@SuppressLint("NewApi") 
public class LocationFragment extends Fragment { 

    MapView mMapView; 
    private GoogleMap googleMap; 

    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
      Bundle savedInstanceState) { 
     // inflat and return the layout 
     View v = inflater.inflate(R.layout.location_fragment, container, 
       false); 
     mMapView = (MapView) v.findViewById(R.id.mapView); 
     mMapView.onCreate(savedInstanceState); 

     mMapView.onResume();// needed to get the map to display immediately 

     try { 
      MapsInitializer.initialize(getActivity().getApplicationContext()); 
     } catch (Exception e) { 
      e.printStackTrace(); 
     } 

     googleMap = mMapView.getMap(); 
     // latitude and longitude 
     double latitude = 17.385044; 
     double longitude = 78.486671; 

     // create marker 
     MarkerOptions marker = new MarkerOptions().position(
       new LatLng(latitude, longitude)).title("Hello Maps"); 

     // Changing marker icon 
     marker.icon(BitmapDescriptorFactory 
       .defaultMarker(BitmapDescriptorFactory.HUE_ROSE)); 

     // adding marker 
     googleMap.addMarker(marker); 
     CameraPosition cameraPosition = new CameraPosition.Builder() 
       .target(new LatLng(17.385044, 78.486671)).zoom(12).build(); 
     googleMap.animateCamera(CameraUpdateFactory 
       .newCameraPosition(cameraPosition)); 

     // Perform any camera updates here 
     return v; 
    } 

    @Override 
    public void onResume() { 
     super.onResume(); 
     mMapView.onResume(); 
    } 

    @Override 
    public void onPause() { 
     super.onPause(); 
     mMapView.onPause(); 
    } 

    @Override 
    public void onDestroy() { 
     super.onDestroy(); 
     mMapView.onDestroy(); 
    } 

    @Override 
    public void onLowMemory() { 
     super.onLowMemory(); 
     mMapView.onLowMemory(); 
    } 
} 

und das ist das Manifest

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="com.mom" 
    android:installLocation="auto" 
    android:versionCode="1" 
    android:versionName="1.0" > 

    <uses-sdk 
     android:minSdkVersion="8" 
     android:targetSdkVersion="21" /> 

    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> 
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> 
    <uses-permission android:name="android.permission.INTERNET" /> 

    <permission 
     android:name="com.arshad.map.permission.MAPS_RECEIVE" 
     android:protectionLevel="signature" /> 

    <!-- Permission to receive Google Maps --> 
    <uses-permission android:name="com.arshad.map.permission.MAPS_RECEIVE" /> 

    <!-- Maps API needs OpenGL ES 2.0. --> 
    <uses-feature 
     android:glEsVersion="0x00020000" 
     android:required="true" /> 

    <application 
     android:allowBackup="true" 
     android:icon="@drawable/ic_launcher" 
     android:label="@string/app_name" 
     android:theme="@android:style/Theme.NoTitleBar.Fullscreen" > 
     <activity 
      android:name=".Splash" 
      android:label="@string/app_name" > 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 

       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
     </activity> 
     <activity 
      android:name=".MainActivity" 
      android:label="@string/title_activity_main" > 
     </activity> 
     <activity 
      android:name=".Add" 
      android:label="@string/title_activity_add" 
      android:windowSoftInputMode="adjustResize|stateVisible" > 
     </activity> 

     <meta-data 
      android:name="com.google.android.maps.v2.API_KEY" 
      android:value="AIzaSyCZdGJKBgErXwK9PP9zbG6as2ErZ__detc" /> 
     <meta-data 
      android:name="com.google.android.gms.version" 
      android:value="@integer/google_play_services_version" /> 

     <activity 
      android:name=".Map_activity" 
      android:label="@string/title_activity_map" > 
     </activity> 

     <uses-library 
      android:name="com.google.android.maps" 
      android:required="true" /> 
    </application> 

</manifest> 
+0

Sind Sie sicher, dass diese Zeile aus Ihrem Manifest korrekt ist? package = "com.mom". Normalerweise sieht es so aus wie com.companyname.myappname – noogui

+0

ja ich bin mir sicher. das ist, wie ich das Paket nannte –

Antwort

0

ich ein ähnliches Problem hatte und ich Es wurde behoben, indem die Google Play Services-Bibliothek zu meinem Projekt hinzugefügt wurde. Fügen Sie Ihrer Gradle-Datei die folgende Abhängigkeit hinzu: compile 'com.google.android.gms:play-services:8.4.0'

+0

ich habe Google Play Services Lib hinzugefügt. –

+0

Ich benutze Eclipse. ist in der Finsternis vorhanden. Wenn ja, wo finde ich es. –

+0

Wenn Sie Eclipse mit ADT verwenden, prüfen Sie, wie Sie die Google Play Services-Bibliothek Ihrem Projekt hinzufügen können https://developers.google.com/android/guides/setup#add_google_play_services_to_your_project (Wählen Sie Eclipse mit ADT) –