2014-06-21 2 views
0

Google지도 v2를 사용하여 내 앱에서 위치를 표시하려고 만들고 있습니다. 내 아수스 태블릿에 사용하기 위해 시도하고는 로그 캣에서 나에게 다음과 같은 오류를 제공합니다 : 여기Eclipse google maps v2 오류

06-21 12:06:10.322: E/AndroidRuntime(21020): FATAL EXCEPTION: main 
06-21 12:06:10.322: E/AndroidRuntime(21020): java.lang.RuntimeException: Unable to start activity ComponentInfo{sp.com/sp.com.RestaurantMap}: android.view.InflateException: Binary XML file line #7: Error inflating class fragment 
06-21 12:06:10.322: E/AndroidRuntime(21020): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2306) 
06-21 12:06:10.322: E/AndroidRuntime(21020): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2358) 
06-21 12:06:10.322: E/AndroidRuntime(21020): at android.app.ActivityThread.access$600(ActivityThread.java:156) 
06-21 12:06:10.322: E/AndroidRuntime(21020): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1340) 
06-21 12:06:10.322: E/AndroidRuntime(21020): at android.os.Handler.dispatchMessage(Handler.java:99) 
06-21 12:06:10.322: E/AndroidRuntime(21020): at android.os.Looper.loop(Looper.java:153) 
06-21 12:06:10.322: E/AndroidRuntime(21020): at android.app.ActivityThread.main(ActivityThread.java:5299) 
06-21 12:06:10.322: E/AndroidRuntime(21020): at java.lang.reflect.Method.invokeNative(Native Method) 
06-21 12:06:10.322: E/AndroidRuntime(21020): at java.lang.reflect.Method.invoke(Method.java:511) 
06-21 12:06:10.322: E/AndroidRuntime(21020): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:833) 
06-21 12:06:10.322: E/AndroidRuntime(21020): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:600) 
06-21 12:06:10.322: E/AndroidRuntime(21020): at dalvik.system.NativeStart.main(Native Method) 
06-21 12:06:10.322: E/AndroidRuntime(21020): Caused by: android.view.InflateException: Binary XML file line #7: Error inflating class fragment 
06-21 12:06:10.322: E/AndroidRuntime(21020): at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:704) 
06-21 12:06:10.322: E/AndroidRuntime(21020): at android.view.LayoutInflater.rInflate(LayoutInflater.java:746) 
06-21 12:06:10.322: E/AndroidRuntime(21020): at android.view.LayoutInflater.inflate(LayoutInflater.java:489) 
06-21 12:06:10.322: E/AndroidRuntime(21020): at android.view.LayoutInflater.inflate(LayoutInflater.java:396) 
06-21 12:06:10.322: E/AndroidRuntime(21020): at android.view.LayoutInflater.inflate(LayoutInflater.java:352) 
06-21 12:06:10.322: E/AndroidRuntime(21020): at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:274) 
06-21 12:06:10.322: E/AndroidRuntime(21020): at android.app.Activity.setContentView(Activity.java:1881) 
06-21 12:06:10.322: E/AndroidRuntime(21020): at sp.com.RestaurantMap.onCreate(RestaurantMap.java:28) 
06-21 12:06:10.322: E/AndroidRuntime(21020): at android.app.Activity.performCreate(Activity.java:5122) 
06-21 12:06:10.322: E/AndroidRuntime(21020): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1081) 
06-21 12:06:10.322: E/AndroidRuntime(21020): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2270) 
06-21 12:06:10.322: E/AndroidRuntime(21020): ... 11 more 
06-21 12:06:10.322: E/AndroidRuntime(21020): Caused by: java.lang.RuntimeException: API key not found. Check that <meta-data android:name="com.google.android.maps.v2.API_KEY" android:value="your API key"/> is in the <application> element of AndroidManifest.xml 
06-21 12:06:10.322: E/AndroidRuntime(21020): at mcg.a(Unknown Source) 
06-21 12:06:10.322: E/AndroidRuntime(21020): at mcg.a(Unknown Source) 
06-21 12:06:10.322: E/AndroidRuntime(21020): at mcg.a(Unknown Source) 
06-21 12:06:10.322: E/AndroidRuntime(21020): at mcg.a(Unknown Source) 
06-21 12:06:10.322: E/AndroidRuntime(21020): at mbi.a(Unknown Source) 
06-21 12:06:10.322: E/AndroidRuntime(21020): at lxn.a(Unknown Source) 
06-21 12:06:10.322: E/AndroidRuntime(21020): at lxm.a(Unknown Source) 
06-21 12:06:10.322: E/AndroidRuntime(21020): at fnb.onTransact(SourceFile:107) 
06-21 12:06:10.322: E/AndroidRuntime(21020): at android.os.Binder.transact(Binder.java:310) 
06-21 12:06:10.322: E/AndroidRuntime(21020): at com.google.android.gms.maps.internal.IMapFragmentDelegate$a$a.onCreateView(Unknown Source) 
06-21 12:06:10.322: E/AndroidRuntime(21020): at com.google.android.gms.maps.MapFragment$b.onCreateView(Unknown Source) 
06-21 12:06:10.322: E/AndroidRuntime(21020): at com.google.android.gms.internal.d$4.a(Unknown Source) 
06-21 12:06:10.322: E/AndroidRuntime(21020): at com.google.android.gms.internal.d.a(Unknown Source) 
06-21 12:06:10.322: E/AndroidRuntime(21020): at com.google.android.gms.internal.d.onCreateView(Unknown Source) 
06-21 12:06:10.322: E/AndroidRuntime(21020): at com.google.android.gms.maps.MapFragment.onCreateView(Unknown Source) 
06-21 12:06:10.322: E/AndroidRuntime(21020): at android.app.Fragment.performCreateView(Fragment.java:1695) 
06-21 12:06:10.322: E/AndroidRuntime(21020): at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:861) 
06-21 12:06:10.322: E/AndroidRuntime(21020): at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:1035) 
06-21 12:06:10.322: E/AndroidRuntime(21020): at android.app.FragmentManagerImpl.addFragment(FragmentManager.java:1137) 
06-21 12:06:10.322: E/AndroidRuntime(21020): at android.app.Activity.onCreateView(Activity.java:4735) 
06-21 12:06:10.322: E/AndroidRuntime(21020): at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:680) 
06-21 12:06:10.322: E/AndroidRuntime(21020): ... 21 more 

을 내 안드로이드 매니페스트 파일입니다.

<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
package="sp.com" 
android:versionCode="1" 
android:versionName="1.0" > 

<uses-sdk 
    android:minSdkVersion="12" 
    android:targetSdkVersion="17" /> 

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

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

<uses-permission android:name="sp.com.permission.MAPS_RECEIVE" /> 
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 
<uses-permission android:name="android.permission.INTERNET" /> 
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 
<uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" /> 
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> 
<uses-permission android:name="com.android.alarm.permission.SET_ALARM" /> 
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> 
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" /> 

<application 
    android:allowBackup="true" 
    android:icon="@drawable/my_icon" 
    android:label="@string/app_name" 
    android:theme="@style/AppTheme" > 
    <activity 
     android:name="sp.com.RestaurantList" 
     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="sp.com.DetailForm" /> 
    <activity android:name="sp.com.EditPreference" /> 
    <activity android:name="sp.com.AlarmActivity" /> 
    <activity android:name="sp.com.RestaurantMap" /> 

    <receiver 
     android:name="sp.com.OnBootReceiver" 
     android:enabled="false" > 
     <intent-filter> 
      <action android:name="android.intent.action.BOOT_COMPLETED" /> 
     </intent-filter> 
    </receiver> 
    <receiver android:name="sp.com.OnAlarmReceiver" /> 

    <meta-data 
     android:name="com.google.android.maps.v2.API Key" 
     android:value="--- the key ---" /> 
</application> 

여기 여기
<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" 
tools:context=".MainActivity" > 

<fragment 
    android:id="@+id/restaurant_map" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    class="com.google.android.gms.maps.MapFragment" /> 

그리고 내 restaurantmap.java 활동이 내 map.xml 파일

입니다.

package sp.com; 

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

import com.google.android.gms.maps.CameraUpdateFactory; 
import com.google.android.gms.maps.GoogleMap; 
import com.google.android.gms.maps.MapFragment; 
import com.google.android.gms.maps.model.BitmapDescriptorFactory; 
import com.google.android.gms.maps.model.LatLng; 
import com.google.android.gms.maps.model.Marker; 
import com.google.android.gms.maps.model.MarkerOptions; 

public class RestaurantMap extends Activity { 
    // static final LatLng RESTAURANT = new LatLng(1.334611, 103.746836); 
    // static final LatLng KIEL = new LatLng(1.333522, 103.740286); 
    private GoogleMap map; 
    private double lat; 
    private double lon; 
    private String restaurantName; 
    private double myLat; 
    private double myLon; 

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

     lat = getIntent().getDoubleExtra("LATITUDE", 0); 
     lon = getIntent().getDoubleExtra("LONGITUDE", 0); 
     restaurantName = getIntent().getStringExtra("NAME"); 
     myLat = getIntent().getDoubleExtra("MYLATITUDE", 0); 
     myLon = getIntent().getDoubleExtra("MYLONGITUDE", 0); 

     LatLng RESTAURANT = new LatLng(lat, lon); 
     LatLng ME = new LatLng(myLat, myLon); 

     map = ((MapFragment) getFragmentManager().findFragmentById(
       R.id.restaurant_map)).getMap(); 
     Marker restaurant = map.addMarker(new MarkerOptions().position(
       RESTAURANT).title(restaurantName)); 
     Marker me = map.addMarker(new MarkerOptions() 
       .position(ME) 
       .title("ME") 
       .snippet("My Location") 
       .icon(BitmapDescriptorFactory 
         .fromResource(R.drawable.ic_launcher))); 

     // Move the camera instantly to restaurant with a zoom of 15. 
     map.moveCamera(CameraUpdateFactory.newLatLngZoom(RESTAURANT, 15)); 

     // Zoom in, animating the camera. 
     map.animateCamera(CameraUpdateFactory.zoomTo(10), 2000, null); 
    } 

} 

내가 뭘 잘못하고 있는지 알아낼 수있는 사람이 있습니까? 나는 아직도 자바 초보자이며, 당신의 도움은 대단히 감사하겠습니다. 건배!

+0

먼저 Google Play 서비스 서비스 라이브러리를 올바르게 구성해야합니다. –

답변

0

이것은 상속 문제입니다. XML에 태그가 있다면, 당신의 액티비티는 FragmentActivity 나 FragmentActivity에서 확장 된 다른 액티비티를 actionBarActivity와 같이 확장해야합니다.

Google Play 서비스에 필요한 메타 데이터 태그가 없습니다. 응용 프로그램 태그의 직접적인 하위 항목이어야합니다.

<meta-data 
    android:name="com.google.android.gms.version" 
    android:value="@integer/google_play_services_version" /> 
+0

안녕하세요,이 코드를 추가 할 때 오류가 있습니다 : 오류 : 오류 : 지정된 이름과 일치하는 리소스가 없습니다 (값 '@ integer/google_play_services_version '). – user3599230

0

메타 데이터 대신에 이것을 사용하면 문제가되는 android : name이 발생한다고 생각합니다. 확실하지 않지만 plz 한번 시도해보십시오, 작동 할 수도 있습니다. gps.add에 태그를 하나 더 추가했습니다. 공개 포럼에서 API 키를 게시하지 않습니다, 또한

android:name="com.google.android.maps.v2.API_KEY" 

:

<meta-data 
    android:name="com.google.android.maps.v2.API Key" 
    android:value="--- the key ---" /> 

그것은해야한다 :

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

당신은 여기에 오타가! 그것은 사적인 것입니다.