2015-04-20 93 views
2

我正在嘗試在我的應用中添加Google Map。 我尋找解決方案,但沒有任何幫助。 請幫幫我吧。非常感謝!嘗試在FrameLayout中使用MapFragment時出現錯誤/異常

日誌:

Process: com.userstracker.userstracker, PID: 26404 
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.userstracker.userstracker/com.userstracker.userstracker.MainMap}: android.view.InflateException: Binary XML file line #24: Error inflating class fragment 
     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2298) 
     ... 
     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694) 
Caused by: android.view.InflateException: Binary XML file line #24: Error inflating class fragment 
     at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:763) 
     ... 
Caused by: java.lang.SecurityException: The Maps API requires the additional following permissions to be set in the AndroidManifest.xml to ensure a correct behavior: 
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/> 
<uses-permission android:name="android.permission.INTERNET"/> 
<uses-permi 

裂變機器人:名稱= 「android.permission.WRITE_EXTERNAL_STORAGE」/> ... 22更

清單:

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

    <application 
     android:allowBackup="true" 
     android:icon="@mipmap/ic_launcher" 
     android:label="@string/app_name" 
     android:theme="@style/AppTheme" > 
     <activity 
      android:name=".MainMap" 
      android:label="@string/title_main_map" > 
      <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.gms.version" 
      android:value="@integer/google_play_services_version" /> 
     <meta-data 
      android:name="com.google.android.maps.v2.API_KEY" 
      android:value="****-1_ynWmcMJZI" /> 
     <uses-permission android:name="android.permission.INTERNET" /> 
     <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 
     <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/> 
     <uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" /> 
     <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> 
     <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> 
     <uses-permission android:name="android.permission.MAPS_RECEIVE" /> 
     <uses-library android:name="com.google.android.maps" /> 
    </application> 

</manifest> 

活動:

public class MainMap extends ActionBarActivity { 

    private ActionBarDrawerToggle toggle; 
    GoogleMap googleMap; 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main_map); 

     createMapView(); 
     addMarker(); 

     Toolbar toolbar = (Toolbar)findViewById(R.id.toolbar); 
     setSupportActionBar(toolbar); 

     DrawerLayout drawerLayout = (DrawerLayout)findViewById(R.id.drawer_layout); 

     toggle = new ActionBarDrawerToggle(this, drawerLayout, R.string.navigation_drawer_open, R.string.navigation_drawer_close); 
     toggle.setDrawerIndicatorEnabled(true); 
     drawerLayout.setDrawerListener(toggle); 

     ListView lv_navigation_drawer = (ListView)findViewById(R.id.lv_navigation_drawer); 
     lv_navigation_drawer.setAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, new String[] {"Screen 1", "Screen 2", "Screen 3"})); 

    } 
} 

佈局:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical"> 

    <android.support.v7.widget.Toolbar 
     android:id="@+id/toolbar" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:minHeight="?attr/actionBarSize" 
     app:theme="@style/ActionBarStyle" 
     /> 

    <android.support.v4.widget.DrawerLayout 
     android:id="@+id/drawer_layout" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" > 
     <FrameLayout 
      android:id="@+id/container" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" > 
      <fragment 
       android:id="@+id/mapView" 
       android:name="com.google.android.gms.maps.MapFragment" 
       android:layout_width="match_parent" 
       android:layout_height="match_parent"/> 

     </FrameLayout> 
     <ListView 
      android:id="@+id/lv_navigation_drawer" 
      android:layout_width="240dp" 
      android:layout_height="match_parent" 
      android:layout_gravity="start" 
      android:background="@android:color/white" /> 
    </android.support.v4.widget.DrawerLayout> 

</LinearLayout> 

回答

1

您的權限不應該在應用中,它們應該在清單標籤

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

<application 
    android:allowBackup="true" 
    android:icon="@mipmap/ic_launcher" 
    android:label="@string/app_name" 
    android:theme="@style/AppTheme" > 
    <activity 
     android:name=".MainMap" 
     android:label="@string/title_main_map" > 
     <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.gms.version" 
     android:value="@integer/google_play_services_version" /> 
    <meta-data 
     android:name="com.google.android.maps.v2.API_KEY" 
     android:value="****-1_ynWmcMJZI" /> 
    <uses-library android:name="com.google.android.maps" /> 
    </application> 

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

</manifest> 
+0

哦,該死。這是真的。感謝您的幫助兄弟!) – Denis

相關問題