5

조각을 사용하여 Google지도를 표시하려고했습니다. 튜토리얼으로 다음 page을 사용했습니다.Google지도에서 XML을 부 풀리는 동안 오류가 발생했습니다. 조각

"Error Inflating class fragment"예외가 발생합니다. 단지 구글 플레이-services.jar

2) 다운로드와 구글 플레이 서비스가 설정의 SDK 수입

1).

3) 최신 v2 API 키를 받았습니다.

4) 매니페스트에 com.google.android.providers.gsf.permission.READ_GSERVICES 권한을 추가했습니다. 참고로 mindsdk = 8 = 16 대상

를 사용

5) Androidmanifest.xml :

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

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

<permission 
android:name="com.example.com.mapsdemo.permission.MAPS_RECEIVE" 
android:protectionLevel="signature"/> 
<uses-permission android:name="com.example.com.mapsdemo.permission.MAPS_RECEIVE"/> 
<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-sdk 
    android:minSdkVersion="8" 
    android:targetSdkVersion="16" /> 

<application 
    android:allowBackup="true" 
    android:icon="@drawable/ic_launcher" 
    android:label="@string/app_name" 
    android:theme="@style/AppTheme" > 
    <activity 
     android:name="com.example.com.mapsdemo.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> 
<meta-data 
android:name="com.google.android.maps.v2.API_KEY" 
android:value="AIzaSyDXPsxWF634gd907NzZKkRkNS0oH9IPWgk"/> 


</application> 

MainActivity.java

package com.example.com.mapsdemo; 

import android.os.Bundle; 
import android.app.Activity; 
import android.view.Menu; 
import android.widget.Toast; 

import com.google.android.gms.common.GooglePlayServicesUtil; 


//API : AIzaSyDXPsxWF634gd907NzZKkRkNS0oH9IPWgk 

public class MainActivity extends Activity { 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 


    try { 
    setContentView(R.layout.activity_main); 
    } catch (Exception e) { 

    Toast.makeText(this, e.toString(), Toast.LENGTH_LONG).show(); 
    } 



} 

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    // Inflate the menu; this adds items to the action bar if it is present. 
    getMenuInflater().inflate(R.menu.activity_main, menu); 
    return true; 
} 

} 

activity_main.xml

,536,913 63,210
<?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"/> 

로그 캣 :

01-02 18:31:21.477: I/jdwp(11473): Ignoring second debugger -- accepting and dropping 
01-02 18:31:24.493: D/libEGL(11871): loaded /vendor/lib/egl/libEGL_POWERVR_SGX540_120.so 
01-02 18:31:24.493: D/libEGL(11871): loaded /vendor/lib/egl/libGLESv1_CM_POWERVR_SGX540_120.so 
01-02 18:31:24.509: D/libEGL(11871): loaded /vendor/lib/egl/libGLESv2_POWERVR_SGX540_120.so 
01-02 18:31:24.602: D/OpenGLRenderer(11871): Enabling debug mode 0 
+0

스택 추적을 게시하십시오. – CommonsWare

+0

나는 초보자입니다. 제발 내가 어떤 실수를했는지 말해주세요 – 10101010

+0

그건 당신의 질문과 관련된 자바 스택 추적이 아닙니다. 디버거 외부에서 앱을 실행하고 크래시가 발생하도록 허용하고 스택 추적을 위해 LogCat을 확인합니다. – CommonsWare

답변

4

Error inflating class fragment 일반적으로 네이티브 API 레벨 조각의 11 버전을 사용하려고 할 때 온다 - 소스 코드를하고있다 -하지만 그것을 실행하려고 이전 버전의 Android.

  • 상속 FragmentActivity 대신 Activity
  • 에서 프로젝트에 안드로이드 지원 패키지를 추가 : API 레벨 10에 <fragment>을 사용하려면 아래에, 당신은 조각의 안드로이드 지원 패키지의 백 포트를 사용해야합니다 지금이 백 포트에 따라 다릅니다 다른 SupportMapFragment 오히려
  • MapFragment 이상 변경 아무것도 사용

또는 android:minSdkVersion을 11 이상으로 설정하고 최신 장치에서만 현재 코드를 실행할 수 있습니다.

the documentation에서 Android 지원 패키지에 대해 자세히 알아볼 수 있습니다.

+1

저는 Nexus와 Jelly Bean을 사용했지만 작동하지 않았습니다. 그리고 처음에는 4 점을 변경 한 후에도 동일한 예외가 발생합니다. – 10101010

+0

은 Activity 대신 FragmentActivity에서 상속됩니다. –

1

동일한 오류가 발생했습니다. 실제 device.and에서 Google Play 서비스 라이브러리를 다음과 같이 실행하는지 확인하십시오. project_properties-> Android 기기,> 라이브러리 다음 ..

다시 libs와 잘 각각의 파일을 클릭하고 경로를 구축 선택한 다음 안드로이드 지원 v4.jar 및 google_play_services.jar 및 폴더 복사 할 .. 구글이 LIB 재생 추가

api 키가 com.example.com.mapsdemo 패키지인지 확인하십시오. 모든 패키지의 새 api 키가 생성됩니다.

대신 XML 파일의 MapFragment에서 SupportMapFragment를 사용하십시오.

이 문제가 해결되었습니다.

호프가이 문제를 해결하기 바랍니다.

0

이 문제에 대해 많은 질문을 던지고 twi 일 후에 내 솔루션은 간단합니다. Project Build Target Google API를 사용하여 프로젝트를 컴파일해야합니다. 나는 그것에 대해 매우 어리 석다.