Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/192.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android Android.view.InflateException二进制XML文件行#16:膨胀类片段时出错_Android_Eclipse_Android Layout_Android Fragments_Gmsmapview - Fatal编程技术网

Android Android.view.InflateException二进制XML文件行#16:膨胀类片段时出错

Android Android.view.InflateException二进制XML文件行#16:膨胀类片段时出错,android,eclipse,android-layout,android-fragments,gmsmapview,Android,Eclipse,Android Layout,Android Fragments,Gmsmapview,这是我的活动课 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.net.HttpURLConnection; import java.net.URL; import java.util.ArrayList; import java.util.HashMap; import java

这是我的活动课

import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.net.HttpURLConnection; import java.net.URL; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import org.json.JSONObject; import android.graphics.Color; import android.os.AsyncTask; import android.os.Bundle; import android.support.v4.app.FragmentActivity; import android.util.Log; import android.view.Menu; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import com.google.android.gms.maps.GoogleMap; import com.google.android.gms.maps.GoogleMap.OnMapClickListener; import com.google.android.gms.maps.GoogleMap.OnMapLongClickListener; 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; import com.google.android.gms.maps.model.PolylineOptions; public class MainActivity extends FragmentActivity { GoogleMap map; ArrayList markerPoints; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // Initializing markerPoints = new ArrayList(); // Getting reference to SupportMapFragment of the activity_main SupportMapFragment fm = (SupportMapFragment)getSupportFragmentManager().findFragmentById(R.id.map); // Getting reference to Button Button btnDraw = (Button)findViewById(R.id.btn_draw); // Getting Map for the SupportMapFragment map = fm.getMap(); // Enable MyLocation Button in the Map map.setMyLocationEnabled(true); // Setting onclick event listener for the map map.setOnMapClickListener(new OnMapClickListener() { @Override public void onMapClick(LatLng point) { // Already 10 locations with 8 waypoints and 1 start location and 1 end location. // Upto 8 waypoints are allowed in a query for non-business users if(markerPoints.size()>=10){ return; } // Adding new item to the ArrayList markerPoints.add(point); // Creating MarkerOptions MarkerOptions options = new MarkerOptions(); // Setting the position of the marker options.position(point); /** * For the start location, the color of marker is GREEN and * for the end location, the color of marker is RED and * for the rest of markers, the color is AZURE */ if(markerPoints.size()==1){ options.icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_GREEN)); }else if(markerPoints.size()==2){ options.icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_RED)); }else{ options.icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_AZURE)); } // Add new marker to the Google Map Android API V2 map.addMarker(options); } }); // The map will be cleared on long click map.setOnMapLongClickListener(new OnMapLongClickListener() { @Override public void onMapLongClick(LatLng point) { // Removes all the points from Google Map map.clear(); // Removes all the points in the ArrayList markerPoints.clear(); } }); // Click event handler for Button btn_draw btnDraw.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // Checks, whether start and end locations are captured if(markerPoints.size() >= 2){ LatLng origin = markerPoints.get(0); LatLng dest = markerPoints.get(1); // Getting URL to the Google Directions API String url = getDirectionsUrl(origin, dest); DownloadTask downloadTask = new DownloadTask(); // Start downloading json data from Google Directions API downloadTask.execute(url); } } }); } private String getDirectionsUrl(LatLng origin,LatLng dest){ // Origin of route String str_origin = "origin="+origin.latitude+","+origin.longitude; // Destination of route String str_dest = "destination="+dest.latitude+","+dest.longitude; // Sensor enabled String sensor = "sensor=false"; // Waypoints String waypoints = ""; for(int i=2;i{ // Downloading data in non-ui thread @Override protected String doInBackground(String... url) { // For storing data from web service String data = ""; try{ // Fetching the data from web service data = downloadUrl(url[0]); }catch(Exception e){ Log.d("Background Task",e.toString()); } return data; } // Executes in UI thread, after the execution of // doInBackground() @Override protected void onPostExecute(String result) { super.onPostExecute(result); ParserTask parserTask = new ParserTask(); // Invokes the thread for parsing the JSON data parserTask.execute(result); } } /** A class to parse the Google Places in JSON format */ private class ParserTask extends AsyncTask>> >{ // Parsing the data in non-ui thread @Override protected List>> doInBackground(String... jsonData) { JSONObject jObject; List>> routes = null; try{ jObject = new JSONObject(jsonData[0]); DirectionsJSONParser parser = new DirectionsJSONParser(); // Starts parsing data routes = parser.parse(jObject); }catch(Exception e){ e.printStackTrace(); } return routes; } // Executes in UI thread, after the parsing process @Override protected void onPostExecute(List>> result) { ArrayList points = null; PolylineOptions lineOptions = null; // Traversing through all the routes for(int i=0;i(); lineOptions = new PolylineOptions(); // Fetching i-th route List> path = result.get(i); // Fetching all the points in i-th route for(int j=0;j point = path.get(j); double lat = Double.parseDouble(point.get("lat")); double lng = Double.parseDouble(point.get("lng")); LatLng position = new LatLng(lat, lng); points.add(position); } // Adding all the points in the route to LineOptions lineOptions.addAll(points); lineOptions.width(2); lineOptions.color(Color.RED); } // Drawing polyline in the Google Map for the i-th route map.addPolyline(lineOptions); } } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main, menu); return true; } } 导入java.io.BufferedReader; 导入java.io.IOException; 导入java.io.InputStream; 导入java.io.InputStreamReader; 导入java.net.HttpURLConnection; 导入java.net.URL; 导入java.util.ArrayList; 导入java.util.HashMap; 导入java.util.List; 导入org.json.JSONObject; 导入android.graphics.Color; 导入android.os.AsyncTask; 导入android.os.Bundle; 导入android.support.v4.app.FragmentActivity; 导入android.util.Log; 导入android.view.Menu; 导入android.view.view; 导入android.view.view.OnClickListener; 导入android.widget.Button; 导入com.google.android.gms.maps.GoogleMap; 导入com.google.android.gms.maps.GoogleMap.OnMapClickListener; 导入com.google.android.gms.maps.GoogleMap.OnMapLongClickListener; 导入com.google.android.gms.maps.SupportMapFragment; 导入com.google.android.gms.maps.model.BitmapDescriptorFactory; 导入com.google.android.gms.maps.model.LatLng; 导入com.google.android.gms.maps.model.MarkerOptions; 导入com.google.android.gms.maps.model.PolylineOptions; 公共类MainActivity扩展了FragmentActivity{ 谷歌地图; ArrayList markerPoints; @凌驾 创建时受保护的void(Bundle savedInstanceState){ super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //初始化 markerPoints=newarraylist(); //获取对活动\u main的SupportMapFragment的引用 SupportMapFragment fm=(SupportMapFragment)getSupportFragmentManager().findFragmentById(R.id.map); //获取对按钮的引用 按钮btnDraw=(按钮)findViewById(R.id.btn\U绘图); //正在获取SupportMapFragment的映射 map=fm.getMap(); //在地图中启用MyLocation按钮 map.setMyLocationEnabled(true); //为映射设置onclick事件侦听器 setOnMapClickListener(新的OnMapClickListener(){ @凌驾 公共空区(停车点){ //已经有10个位置,8个航路点,1个起始位置和1个结束位置。 //对于非业务用户,查询中最多允许8个航路点 如果(markerPoints.size()>=10){ 返回; } //向ArrayList添加新项 标记点。添加(点); //创建标记选项 MarkerOptions options=新的MarkerOptions(); //设置标记的位置 选项。位置(点); /** *对于起始位置,标记的颜色为绿色和白色 *对于结束位置,标记的颜色为红色和红色 *对于其余的标记,颜色为蓝色 */ if(markerPoints.size()==1){ 图标(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_GREEN)); }else if(markerPoints.size()==2){ 图标(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_RED)); }否则{ 图标(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_AZURE)); } //向Google Map Android API V2添加新标记 map.addMarker(选项); } }); //长时间单击将清除地图 setOnMapLongClickListener(新的OnMapLongClickListener(){ @凌驾 在马普隆喀喇克(LatLng点)上的公共空隙{ //从Google地图中删除所有点 map.clear(); //删除ArrayList中的所有点 markerPoints.clear(); } }); //单击按钮btn\U draw的事件处理程序 setOnClickListener(新的OnClickListener(){ @凌驾 公共void onClick(视图v){ //检查是否捕获开始和结束位置 如果(markerPoints.size()>=2){ LatLng origin=markerPoints.get(0); LatLng dest=标记点获取(1); //获取Google Directions API的URL 字符串url=getDirectionsUrl(源、目标); DownloadTask DownloadTask=新的DownloadTask(); //开始从Google Directions API下载json数据 downloadTask.execute(url); } } }); } 私有字符串getDirectionsUrl(LatLng来源,LatLng目的地){ //路线起点 字符串str_origin=“origin=“+origin.latitude+”,“+origin.longitude; //路线目的地 字符串str_dest=“destination=”+dest.latitude+”,“+dest.longitude; //传感器启用 字符串sensor=“sensor=false”; //航路点 字符串航路点=”; 对于(int i=2;i{ //在非ui线程中下载数据 @凌驾 受保护的字符串doInBackground(字符串…url){ //用于存储来自web服务的数据 字符串数据=”; 试一试{ //从web服务获取数据 数据=下载url(url[0]); }捕获(例外e){ Log.d(“后台任务”,例如toString()); } 返回数据; } //在UI线程中执行,在 //doInBackground() @凌驾 受保护的void onPostExecute(字符串结果){ super.onPostExecute(结果); ParserTask ParserTask=新的ParserTask(); //调用线程 package in.wptrafficanalyzer.locationwaypointmapv2; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject; import com.google.android.gms.maps.model.LatLng; public class DirectionsJSONParser { /** Receives a JSONObject and returns a list of lists containing latitude and longitude */ public List>> parse(JSONObject jObject){ List>> routes = new ArrayList>>(); JSONArray jRoutes = null; JSONArray jLegs = null; JSONArray jSteps = null; try { jRoutes = jObject.getJSONArray("routes"); /** Traversing all routes */ for(int i=0;i>(); /** Traversing all legs */ for(int j=0;j list = decodePoly(polyline); /** Traversing all points */ for(int l=0;l hm = new HashMap(); hm.put("lat", Double.toString(((LatLng)list.get(l)).latitude) ); hm.put("lng", Double.toString(((LatLng)list.get(l)).longitude) ); path.add(hm); } } routes.add(path); } } } catch (JSONException e) { e.printStackTrace(); }catch (Exception e){ } return routes; } /** * Method to decode polyline points * Courtesy : jeffreysambells.com/2010/05/27/decoding-polylines-from-google-maps-direction-api-with-java * */ private List decodePoly(String encoded) { List poly = new ArrayList(); int index = 0, len = encoded.length(); int lat = 0, lng = 0; while (index = 0x20); int dlat = ((result & 1) != 0 ? ~(result >> 1) : (result >> 1)); lat += dlat; shift = 0; result = 0; do { b = encoded.charAt(index++) - 63; result |= (b & 0x1f) = 0x20); int dlng = ((result & 1) != 0 ? ~(result >> 1) : (result >> 1)); lng += dlng; LatLng p = new LatLng((((double) lat / 1E5)), (((double) lng / 1E5))); poly.add(p); } return poly; } }
<uses-sdk
    android:minSdkVersion="8"
    android:targetSdkVersion="17" />

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

 <permission
      android:name="in.wptrafficanalyzer.locationwaypointmapv2.permission.MAPS_RECEIVE"
      android:protectionLevel="signature" />

<uses-permission android:name="in.wptrafficanalyzer.locationwaypointmapv2.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-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>

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


<application
    android:allowBackup="true"
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >
    <activity
        android:name="in.wptrafficanalyzer.locationwaypointmapv2.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="AIzaSyC6TVk6gtR_i_.......**************"/>    

</application>
<Button 
    android:id="@+id/btn_draw"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:text="@string/str_btn_draw" 
    android:layout_alignParentBottom="true" 
    android:layout_centerHorizontal="true" />


<fragment 
    android:id="@+id/map"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"        
    class="com.google.android.gms.maps.SupportMapFragment" 
    android:layout_above="@id/btn_draw" />
03-02 21:35:25.157: D/dalvikvm(25733): Late-enabling CheckJNI 03-02 21:35:25.758: D/AndroidRuntime(25733): Shutting down VM 03-02 21:35:25.758: W/dalvikvm(25733): threadid=1: thread exiting with uncaught exception (group=0x40ddd2a0) 03-02 21:35:25.768: E/AndroidRuntime(25733): FATAL EXCEPTION: main 03-02 21:35:25.768: E/AndroidRuntime(25733): java.lang.RuntimeException: Unable to start activity ComponentInfo{in.wptrafficanalyzer.locationwaypointmapv2/in.wptrafficanalyzer.locationwaypointmapv2.MainActivity}: android.view.InflateException: Binary XML file line #16: Error inflating class fragment 03-02 21:35:25.768: E/AndroidRuntime(25733): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2110) 03-02 21:35:25.768: E/AndroidRuntime(25733): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2135) 03-02 21:35:25.768: E/AndroidRuntime(25733): at android.app.ActivityThread.access$700(ActivityThread.java:140) 03-02 21:35:25.768: E/AndroidRuntime(25733): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1237) 03-02 21:35:25.768: E/AndroidRuntime(25733): at android.os.Handler.dispatchMessage(Handler.java:99) 03-02 21:35:25.768: E/AndroidRuntime(25733): at android.os.Looper.loop(Looper.java:137) 03-02 21:35:25.768: E/AndroidRuntime(25733): at android.app.ActivityThread.main(ActivityThread.java:4935) 03-02 21:35:25.768: E/AndroidRuntime(25733): at java.lang.reflect.Method.invokeNative(Native Method) 03-02 21:35:25.768: E/AndroidRuntime(25733): at java.lang.reflect.Method.invoke(Method.java:511) 03-02 21:35:25.768: E/AndroidRuntime(25733): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1038) 03-02 21:35:25.768: E/AndroidRuntime(25733): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:805) 03-02 21:35:25.768: E/AndroidRuntime(25733): at dalvik.system.NativeStart.main(Native Method) 03-02 21:35:25.768: E/AndroidRuntime(25733): Caused by: android.view.InflateException: Binary XML file line #16: Error inflating class fragment 03-02 21:35:25.768: E/AndroidRuntime(25733): at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:710) 03-02 21:35:25.768: E/AndroidRuntime(25733): at android.view.LayoutInflater.rInflate(LayoutInflater.java:752) 03-02 21:35:25.768: E/AndroidRuntime(25733): at android.view.LayoutInflater.inflate(LayoutInflater.java:495) 03-02 21:35:25.768: E/AndroidRuntime(25733): at android.view.LayoutInflater.inflate(LayoutInflater.java:397) 03-02 21:35:25.768: E/AndroidRuntime(25733): at android.view.LayoutInflater.inflate(LayoutInflater.java:353) 03-02 21:35:25.768: E/AndroidRuntime(25733): at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:316) 03-02 21:35:25.768: E/AndroidRuntime(25733): at android.app.Activity.setContentView(Activity.java:1924) 03-02 21:35:25.768: E/AndroidRuntime(25733): at in.wptrafficanalyzer.locationwaypointmapv2.MainActivity.onCreate(MainActivity.java:43) 03-02 21:35:25.768: E/AndroidRuntime(25733): at android.app.Activity.performCreate(Activity.java:5206) 03-02 21:35:25.768: E/AndroidRuntime(25733): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1094) 03-02 21:35:25.768: E/AndroidRuntime(25733): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2074) 03-02 21:35:25.768: E/AndroidRuntime(25733): ... 11 more 03-02 21:35:25.768: E/AndroidRuntime(25733): Caused by: java.lang.IllegalStateException: The meta-data tag in your app's AndroidManifest.xml does not have the right value. Expected 4242000 but found 0. You must have the following declaration within the element: 03-02 21:35:25.768: E/AndroidRuntime(25733): at com.google.android.gms.common.GooglePlayServicesUtil.n(Unknown Source) 03-02 21:35:25.768: E/AndroidRuntime(25733): at com.google.android.gms.common.GooglePlayServicesUtil.isGooglePlayServicesAvailable(Unknown Source) 03-02 21:35:25.768: E/AndroidRuntime(25733): at com.google.android.gms.maps.internal.q.v(Unknown Source) 03-02 21:35:25.768: E/AndroidRuntime(25733): at com.google.android.gms.maps.internal.q.u(Unknown Source) 03-02 21:35:25.768: E/AndroidRuntime(25733): at com.google.android.gms.maps.MapsInitializer.initialize(Unknown Source) 03-02 21:35:25.768: E/AndroidRuntime(25733): at com.google.android.gms.maps.SupportMapFragment$b.ex(Unknown Source) 03-02 21:35:25.768: E/AndroidRuntime(25733): at com.google.android.gms.maps.SupportMapFragment$b.a(Unknown Source) 03-02 21:35:25.768: E/AndroidRuntime(25733): at com.google.android.gms.dynamic.a.a(Unknown Source) 03-02 21:35:25.768: E/AndroidRuntime(25733): at com.google.android.gms.dynamic.a.onInflate(Unknown Source) 03-02 21:35:25.768: E/AndroidRuntime(25733): at com.google.android.gms.maps.SupportMapFragment.onInflate(Unknown Source) 03-02 21:35:25.768: E/AndroidRuntime(25733): at android.support.v4.app.FragmentActivity.onCreateView(FragmentActivity.java:279) 03-02 21:35:25.768: E/AndroidRuntime(25733): at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:682) 03-02 21:35:25.768: E/AndroidRuntime(25733): ... 21 more
<meta-data
   android:name="com.google.android.maps.v2.API_KEY"
    android:value="AIzaSyC6TVk6gtR_i_.......**************"/> 
<meta-data
   android:name="com.google.android.maps.v2.API_KEY"
   android:value="@integer/your_google_maps_version" />
<meta-data
   android:name="com.google.android.maps.v2.API_KEY"
    android:value="AIzaSyC6TVk6gtR_i_.......**************"/>