2015-01-13 3 views
1

내 Android 애플리케이션에 Google Map V2를 구현 중입니다. 나는이 두 링크의 모든 단계를 완료했다. http://www.androidhive.info/2013/08/android-working-with-google-maps-v2/http://developer.android.com/google/play-services/setup.html 이렇게 답을 보내지 마라. Maps API를 다운로드하고, Eclipse Workspace에 복사하고, 라이브러리로 표시하고, 내 프로젝트에서 참조했다. 그러나 성공하지 못했습니다. 나는 아직도 오류가 발생하고있다. 누군가 나를 기쁘게 할 수 있을까? 감탄 해야겠다. 여기에 활동 코드가Android에서 Google지도 V2를 사용할 수없는 이유는 무엇입니까?

01-13 11:41:09.106: I/dalvikvm(403): Could not find method info.androidhive.googlemapsv2.MainActivity.getFragmentManager, referenced from method info.androidhive.googlemapsv2.MainActivity.initilizeMap 
01-13 11:41:09.106: W/dalvikvm(403): VFY: unable to resolve virtual method 27599: Linfo/androidhive/googlemapsv2/MainActivity;.getFragmentManager()Landroid/app/FragmentManager; 
01-13 11:41:09.106: D/dalvikvm(403): VFY: replacing opcode 0x6e at 0x0004 
01-13 11:41:09.106: D/dalvikvm(403): VFY: dead code 0x0007-0028 in Linfo/androidhive/googlemapsv2/MainActivity;.initilizeMap()V 
01-13 11:41:09.772: W/dalvikvm(403): Unable to resolve superclass of Lcom/google/android/gms/maps/MapFragment; (26) 
01-13 11:41:09.772: W/dalvikvm(403): Link of class 'Lcom/google/android/gms/maps/MapFragment;' failed 
01-13 11:41:09.796: D/AndroidRuntime(403): Shutting down VM 
01-13 11:41:09.796: W/dalvikvm(403): threadid=1: thread exiting with uncaught exception (group=0x40015560) 
01-13 11:41:10.191: E/AndroidRuntime(403): FATAL EXCEPTION: main 
01-13 11:41:10.191: E/AndroidRuntime(403): java.lang.RuntimeException: Unable to start activity ComponentInfo{info.androidhive.googlemapsv2/info.androidhive.googlemapsv2.MainActivity}: android.view.InflateException: Binary XML file line #6: Error inflating class fragment 
01-13 11:41:10.191: E/AndroidRuntime(403): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1647) 
01-13 11:41:10.191: E/AndroidRuntime(403): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1663) 
01-13 11:41:10.191: E/AndroidRuntime(403): at android.app.ActivityThread.access$1500(ActivityThread.java:117) 
01-13 11:41:10.191: E/AndroidRuntime(403): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:931) 
01-13 11:41:10.191: E/AndroidRuntime(403): at android.os.Handler.dispatchMessage(Handler.java:99) 
01-13 11:41:10.191: E/AndroidRuntime(403): at android.os.Looper.loop(Looper.java:123) 
01-13 11:41:10.191: E/AndroidRuntime(403): at android.app.ActivityThread.main(ActivityThread.java:3683) 
01-13 11:41:10.191: E/AndroidRuntime(403): at java.lang.reflect.Method.invokeNative(Native Method) 
01-13 11:41:10.191: E/AndroidRuntime(403): at java.lang.reflect.Method.invoke(Method.java:507) 
01-13 11:41:10.191: E/AndroidRuntime(403): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839) 
01-13 11:41:10.191: E/AndroidRuntime(403): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597) 
01-13 11:41:10.191: E/AndroidRuntime(403): at dalvik.system.NativeStart.main(Native Method) 
01-13 11:41:10.191: E/AndroidRuntime(403): Caused by: android.view.InflateException: Binary XML file line #6: Error inflating class fragment 
01-13 11:41:10.191: E/AndroidRuntime(403): at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:587) 
01-13 11:41:10.191: E/AndroidRuntime(403): at android.view.LayoutInflater.rInflate(LayoutInflater.java:623) 
01-13 11:41:10.191: E/AndroidRuntime(403): at android.view.LayoutInflater.inflate(LayoutInflater.java:408) 
01-13 11:41:10.191: E/AndroidRuntime(403): at android.view.LayoutInflater.inflate(LayoutInflater.java:320) 
01-13 11:41:10.191: E/AndroidRuntime(403): at android.view.LayoutInflater.inflate(LayoutInflater.java:276) 
01-13 11:41:10.191: E/AndroidRuntime(403): at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:207) 
01-13 11:41:10.191: E/AndroidRuntime(403): at android.app.Activity.setContentView(Activity.java:1657) 
01-13 11:41:10.191: E/AndroidRuntime(403): at info.androidhive.googlemapsv2.MainActivity.onCreate(MainActivity.java:27) 
01-13 11:41:10.191: E/AndroidRuntime(403): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047) 
01-13 11:41:10.191: E/AndroidRuntime(403): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1611) 
01-13 11:41:10.191: E/AndroidRuntime(403): ... 11 more 
01-13 11:41:10.191: E/AndroidRuntime(403): Caused by: android.support.v4.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-13 11:41:10.191: E/AndroidRuntime(403): at android.support.v4.app.Fragment.instantiate(Fragment.java:401) 
01-13 11:41:10.191: E/AndroidRuntime(403): at android.support.v4.app.Fragment.instantiate(Fragment.java:369) 
01-13 11:41:10.191: E/AndroidRuntime(403): at android.support.v4.app.FragmentActivity.onCreateView(FragmentActivity.java:272) 
01-13 11:41:10.191: E/AndroidRuntime(403): at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:563) 
01-13 11:41:10.191: E/AndroidRuntime(403): ... 20 more 
01-13 11:41:10.191: E/AndroidRuntime(403): Caused by: java.lang.ClassNotFoundException: com.google.android.gms.maps.MapFragment in loader dalvik.system.PathClassLoader[/data/app/info.androidhive.googlemapsv2-1.apk] 
01-13 11:41:10.191: E/AndroidRuntime(403): at dalvik.system.PathClassLoader.findClass(PathClassLoader.java:240) 
01-13 11:41:10.191: E/AndroidRuntime(403): at java.lang.ClassLoader.loadClass(ClassLoader.java:551) 
01-13 11:41:10.191: E/AndroidRuntime(403): at java.lang.ClassLoader.loadClass(ClassLoader.java:511) 
01-13 11:41:10.191: E/AndroidRuntime(403): at android.support.v4.app.Fragment.instantiate(Fragment.java:391) 
01-13 11:41:10.191: E/AndroidRuntime(403): ... 23 more 
01-13 11:46:10.624: I/Process(403): Sending signal. PID: 403 SIG: 9 

입니다 :

다음은 로그인 고양이 정보입니다.

@SuppressLint("NewApi") 
public class MainActivity extends FragmentActivity { 

    // Google Map 
    private GoogleMap googleMap; 

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

     try { 
      // Loading map 
      initilizeMap(); 

      /*Could not find method info.androidhive.googlemapsv2.MainActivity.getFragmentManager, 
       referenced from method info.androidhive.googlemapsv2.MainActivity.initilizeMap*/ 

      // Changing map type 
      googleMap.setMapType(GoogleMap.MAP_TYPE_NORMAL); 
      // googleMap.setMapType(GoogleMap.MAP_TYPE_HYBRID); 
      // googleMap.setMapType(GoogleMap.MAP_TYPE_SATELLITE); 
      // googleMap.setMapType(GoogleMap.MAP_TYPE_TERRAIN); 
      // googleMap.setMapType(GoogleMap.MAP_TYPE_NONE); 

      // Showing/hiding your current location 
      googleMap.setMyLocationEnabled(true); 

      // Enable/Disable zooming controls 
      googleMap.getUiSettings().setZoomControlsEnabled(false); 

      // Enable/Disable my location button 
      googleMap.getUiSettings().setMyLocationButtonEnabled(true); 

      // Enable/Disable Compass icon 
      googleMap.getUiSettings().setCompassEnabled(true); 

      // Enable/Disable Rotate gesture 
      googleMap.getUiSettings().setRotateGesturesEnabled(true); 

      // Enable/Disable zooming functionality 
      googleMap.getUiSettings().setZoomGesturesEnabled(true); 

      double latitude = 17.385044; 
      double longitude = 78.486671; 

      // lets place some 10 random markers 
      for (int i = 0; i < 10; i++) { 
       // random latitude and logitude 
       double[] randomLocation = createRandLocation(latitude, 
         longitude); 

       // Adding a marker 
       MarkerOptions marker = new MarkerOptions().position(new LatLng(randomLocation[0], randomLocation[1])) 
         .title("Hello Maps " + i); 

       Log.e("Random", "> " + randomLocation[0] + ", " 
         + randomLocation[1]); 

       // changing marker color 
       if (i == 0) 
        marker.icon(BitmapDescriptorFactory 
          .defaultMarker(BitmapDescriptorFactory.HUE_AZURE)); 
       if (i == 1) 
        marker.icon(BitmapDescriptorFactory 
          .defaultMarker(BitmapDescriptorFactory.HUE_BLUE)); 
       if (i == 2) 
        marker.icon(BitmapDescriptorFactory 
          .defaultMarker(BitmapDescriptorFactory.HUE_CYAN)); 
       if (i == 3) 
        marker.icon(BitmapDescriptorFactory 
          .defaultMarker(BitmapDescriptorFactory.HUE_GREEN)); 
       if (i == 4) 
        marker.icon(BitmapDescriptorFactory 
          .defaultMarker(BitmapDescriptorFactory.HUE_MAGENTA)); 
       if (i == 5) 
        marker.icon(BitmapDescriptorFactory 
          .defaultMarker(BitmapDescriptorFactory.HUE_ORANGE)); 
       if (i == 6) 
        marker.icon(BitmapDescriptorFactory 
          .defaultMarker(BitmapDescriptorFactory.HUE_RED)); 
       if (i == 7) 
        marker.icon(BitmapDescriptorFactory 
          .defaultMarker(BitmapDescriptorFactory.HUE_ROSE)); 
       if (i == 8) 
        marker.icon(BitmapDescriptorFactory 
          .defaultMarker(BitmapDescriptorFactory.HUE_VIOLET)); 
       if (i == 9) 
        marker.icon(BitmapDescriptorFactory 
          .defaultMarker(BitmapDescriptorFactory.HUE_YELLOW)); 

       googleMap.addMarker(marker); 

       // Move the camera to last position with a zoom level 
       if (i == 9) { 
        CameraPosition cameraPosition = new CameraPosition.Builder() 
          .target(new LatLng(randomLocation[0], 
            randomLocation[1])).zoom(15).build(); 

        googleMap.animateCamera(CameraUpdateFactory 
          .newCameraPosition(cameraPosition)); 
       } 
      } 

     } catch (Exception e) { 
      e.printStackTrace(); 
     } 

    } 

    @Override 
    protected void onResume() { 
     super.onResume(); 
     initilizeMap(); 
    } 

    /** 
    * function to load map If map is not created it will create it for you 
    * */ 
    @SuppressLint("NewApi") private void initilizeMap() { 
     if (googleMap == null) { 
      googleMap = ((MapFragment) getFragmentManager().findFragmentById(
        R.id.map)).getMap(); 

      // check if map is created successfully or not 
      if (googleMap == null) { 
       Toast.makeText(getApplicationContext(), 
         "Sorry! unable to create maps", Toast.LENGTH_SHORT).show(); 
      } 
     } 
    } 



    /* 
    * creating random postion around a location for testing purpose only 
    */ 
    private double[] createRandLocation(double latitude, double longitude) { 

     return new double[] { latitude + ((Math.random() - 0.5)/500), 
       longitude + ((Math.random() - 0.5)/500), 
       150 + ((Math.random() - 0.5) * 10) }; 
    } 
} 
+0

activity_main 레이아웃 XML을 포함합니다. –

+0

Log-cat에 class not found 오류가 표시됩니다 .Google Play 라이브러리를 제대로 가져 오지 못했습니다. 프로젝트 속성을 확인하십시오. – Yugesh

+0

https://github.com/ErNaveen/google-play-services_lib 및 https://github.com/ErNaveen/GoogleMapExample보기 –

답변

0

조각에 오류가있는 것으로 보입니다. 귀하의 오류 메시지에 명시된 바와 같습니다 : 원인 : android.view.InflateException : 이진 XML 파일 줄 # 6 : 클래스 조각을 확장하는 중 오류가 발생했습니다.

관련 문제