2013-02-26 1 views
1

안드로이드 2.2에서 google api v2를 사용하고 싶습니다.안드로이드 2.2에서 GOOGlE API V2 문제

이미 모든 사전 요구 사항이 충족되었습니다.

: Google지도 api key.

  1. 안드로이드 지원-v4.jar

  2. 구글 플레이-services_lib.jar

  3. 구글 플레이-services.jar

난이 오류가 발생합니다.

02-26 09:32:04.055: E/AndroidRuntime(334): FATAL EXCEPTION: main 
02-26 09:32:04.055: E/AndroidRuntime(334): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.mapfragment/com.mapfragment.MainActivity}: java.lang.ClassNotFoundException: com.mapfragment.MainActivity in loader dalvik.system.PathClassLoader[/system/framework/com.google.android.maps.jar:/data/app/com.mapfragment-2.apk] 
02-26 09:32:04.055: E/AndroidRuntime(334): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2585) 
02-26 09:32:04.055: E/AndroidRuntime(334): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679) 
02-26 09:32:04.055: E/AndroidRuntime(334): at android.app.ActivityThread.access$2300(ActivityThread.java:125) 
02-26 09:32:04.055: E/AndroidRuntime(334): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033) 
02-26 09:32:04.055: E/AndroidRuntime(334): at android.os.Handler.dispatchMessage(Handler.java:99) 
02-26 09:32:04.055: E/AndroidRuntime(334): at android.os.Looper.loop(Looper.java:123) 
02-26 09:32:04.055: E/AndroidRuntime(334): at android.app.ActivityThread.main(ActivityThread.java:4627) 
02-26 09:32:04.055: E/AndroidRuntime(334): at java.lang.reflect.Method.invokeNative(Native Method) 
02-26 09:32:04.055: E/AndroidRuntime(334): at java.lang.reflect.Method.invoke(Method.java:521) 
02-26 09:32:04.055: E/AndroidRuntime(334): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868) 
02-26 09:32:04.055: E/AndroidRuntime(334): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626) 
02-26 09:32:04.055: E/AndroidRuntime(334): at dalvik.system.NativeStart.main(Native Method) 
02-26 09:32:04.055: E/AndroidRuntime(334): Caused by: java.lang.ClassNotFoundException: com.mapfragment.MainActivity in loader dalvik.system.PathClassLoader[/system/framework/com.google.android.maps.jar:/data/app/com.mapfragment-2.apk] 
02-26 09:32:04.055: E/AndroidRuntime(334): at dalvik.system.PathClassLoader.findClass(PathClassLoader.java:243) 
02-26 09:32:04.055: E/AndroidRuntime(334): at java.lang.ClassLoader.loadClass(ClassLoader.java:573) 
02-26 09:32:04.055: E/AndroidRuntime(334): at java.lang.ClassLoader.loadClass(ClassLoader.java:532) 
02-26 09:32:04.055: E/AndroidRuntime(334): at android.app.Instrumentation.newActivity(Instrumentation.java:1021) 
02-26 09:32:04.055: E/AndroidRuntime(334): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2577) 
02-26 09:32:04.055: E/AndroidRuntime(334): ... 11 more 

MY CODE :

MainActivity.java

package com.mapfragment; 

import android.os.Bundle; 
import android.support.v4.app.FragmentActivity; 
import android.support.v4.app.FragmentTransaction; 

import com.google.android.gms.common.GooglePlayServicesNotAvailableException; 
import com.google.android.gms.maps.GoogleMap; 
import com.google.android.gms.maps.MapsInitializer; 
import com.google.android.gms.maps.SupportMapFragment; 

public class MainActivity extends FragmentActivity { 
GoogleMap mapView; 
com.google.android.gms.maps.Projection projection; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 
    FragmentTransaction mTransaction = getSupportFragmentManager() 
      .beginTransaction(); 
    SupportMapFragment mFRaFragment = new MapFragmentD(); 
    mTransaction.add(R.id.mainl, mFRaFragment); 
    mTransaction.commit(); 

    try { 
     MapsInitializer.initialize(this); 
    } catch (GooglePlayServicesNotAvailableException e) { 
     e.printStackTrace(); 
    } 
} 

} 

MapFragmentD.java

package com.mapfragment; 

import android.app.Activity; 
import android.os.Bundle; 
import android.util.AttributeSet; 
import android.view.LayoutInflater; 
import android.view.View; 
import android.view.ViewGroup; 

import com.google.android.gms.maps.GoogleMap; 
import com.google.android.gms.maps.SupportMapFragment; 
import com.google.android.gms.maps.model.BitmapDescriptorFactory; 
import com.google.android.gms.maps.model.LatLng; 
import com.google.android.gms.maps.model.MarkerOptions; 

public class MapFragmentD extends SupportMapFragment { 

GoogleMap mapView; 

@Override 
public void onCreate(Bundle arg0) { 
    super.onCreate(arg0); 
} 

@Override 
public View onCreateView(LayoutInflater mInflater, ViewGroup arg1, 
     Bundle arg2) { 
    return super.onCreateView(mInflater, arg1, arg2); 
} 

@Override 
public void onInflate(Activity arg0, AttributeSet arg1, Bundle arg2) { 
    super.onInflate(arg0, arg1, arg2); 
} 

@Override 
public void onActivityCreated(Bundle savedInstanceState) { 
    super.onActivityCreated(savedInstanceState); 

    mapView = getMap(); 
    MarkerOptions markerOptions = new MarkerOptions(); 
    markerOptions.draggable(true); 
    markerOptions.position(new LatLng(23.231251f, 71.648437f)); 
    markerOptions.icon(BitmapDescriptorFactory.defaultMarker()); 
    mapView.addMarker(markerOptions); 
} 
} 

main.xml에

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:tools="http://schemas.android.com/tools" 
android:layout_width="match_parent" 
android:id="@+id/mainl" 
android:layout_height="match_parent" > 

<!--  <com.mapfragment.MapFragmentD 
    android:id="@+id/mapview" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:clickable="true" /> --> 

</FrameLayout> 
,174,515 구글 API를 v2의 15,

mapfragments.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:tools="http://schemas.android.com/tools" 
android:layout_width="match_parent" 
android:layout_height="match_parent" > 

<com.google.android.maps.MapView 
    android:id="@+id/mapview" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:apiKey="0WyiQdWfvE1GnA4nWEz8rX1Ezf-rWMEDShPt5BQ" 
    android:clickable="true" /> 

</RelativeLayout> 

몇 가지 프로그램은 내가 각각의 모든이 경우에만 오류가 발생하는 시간 BT는 시도려고하고있다. plz이 오류를 해결하기 위해 나를 도와주세요 ..

감사합니다 사전에.

+0

당신은 MapFragmentD''의 레이아웃 파일을 가지고,하지만 당신은'그냥'반환 (...) onCreateView'이후를 사용하는 것으로 표시되지 않습니다 super.onCreateView (...)'. 그게 의도적 인거야? 일부 코드가 누락 되었습니까? – blahdiblah

+0

No..it의 완전한 코드 .. 내 친구의 PC에서이 프로젝트는 잘 작동합니다 ... 내 컴퓨터에서이 프로그램을 실행하면이 오류가 발생합니다. http://stackoverflow.com/questions/15068521/eclipse -runtime-dalvik-error/15068596 # comment21215377_15068596 그래서 android 종속성을 삭제하고이 경우에는 잘 작동합니다. android dependencies..bt이 하나를 삭제하면이 오류가 발생합니다. –

+0

plz..guys 나를 도와주세요. 이 문제에서. 너무 많은 여유가있을 때까지 해결책이 없습니다. –

답변

1

귀하의 매니페스트에 다음을 추가해야합니다.

<permission 
    android:name="package.permission.MAPS_RECEIVE" 
    android:protectionLevel="signature" /> 


<uses-feature 
    android:glEsVersion="0x00020000" 
    android:required="true" /> 

<uses-permission android:name="package.permission.MAPS_RECEIVE" /> 

및 애플리케이션 태그

<meta-data 
     android:name="com.google.android.maps.v2.API_KEY" 
     android:value="@string/map_key" /> 
+0

나는 이미이 일을 해왔습니다. –