Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/google-maps/4.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.view.InflateException:二进制XML文件行#8:膨胀类片段时出错_Android_Google Maps_Android Layout_Android Fragments - Fatal编程技术网

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

android.view.InflateException:二进制XML文件行#8:膨胀类片段时出错,android,google-maps,android-layout,android-fragments,Android,Google Maps,Android Layout,Android Fragments,我试图通过谷歌地图活动来寻找旅行距离。但不幸的是layout.xml文件抛出,下面出错并停止应用程序。我使用了MinSDK版本-16。 我尝试了很多事情要做,但仍然存在错误。我在真实的设备上运行我的应用程序。期待一些专家的帮助 2218/? E/AndroidRuntime: FATAL EXCEPTION: main java.lang.RuntimeException: Unable to star

我试图通过谷歌地图活动来寻找旅行距离。但不幸的是layout.xml文件抛出,下面出错并停止应用程序。我使用了MinSDK版本-16。 我尝试了很多事情要做,但仍然存在错误。我在真实的设备上运行我的应用程序。期待一些专家的帮助

2218/? E/AndroidRuntime: FATAL EXCEPTION: main
                                               java.lang.RuntimeException: Unable to start activity ComponentInfo{scpp.globaleye.com.scppclient/scpp.globaleye.com.scppclient.ui.MapsActivity}: android.view.InflateException: Binary XML file line #8: Error inflating class fragment
                                                   at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2184)
                                                   at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2211)
                                                   at android.app.ActivityThread.access$600(ActivityThread.java:149)
                                                   at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1300)
                                                   at android.os.Handler.dispatchMessage(Handler.java:99)
                                                   at android.os.Looper.loop(Looper.java:153)
                                                   at android.app.ActivityThread.main(ActivityThread.java:4987)
                                                   at java.lang.reflect.Method.invokeNative(Native Method)
                                                   at java.lang.reflect.Method.invoke(Method.java:511)
                                                   at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:821)
                                                   at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:584)
                                                   at dalvik.system.NativeStart.main(Native Method)
                                                Caused by: android.view.InflateException: Binary XML file line #8: Error inflating class fragment
                                                   at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:704)
                                                   at android.view.LayoutInflater.rInflate(LayoutInflater.java:746)
                                                   at android.view.LayoutInflater.inflate(LayoutInflater.java:489)
                                                   at android.view.LayoutInflater.inflate(LayoutInflater.java:396)
                                                   at android.view.LayoutInflater.inflate(LayoutInflater.java:352)
                                                   at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:258)
                                                   at android.app.Activity.setContentView(Activity.java:1867)
                                                   at scpp.globaleye.com.scppclient.ui.MapsActivity.onCreate(MapsActivity.java:44)
                                                   at android.app.Activity.performCreate(Activity.java:5020)
                                                   at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1080)
                                                   at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2148)
                                                   at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2211) 
                                                   at android.app.ActivityThread.access$600(ActivityThread.java:149) 
                                                   at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1300) 
                                                   at android.os.Handler.dispatchMessage(Handler.java:99) 
                                                   at android.os.Looper.loop(Looper.java:153) 
                                                   at android.app.ActivityThread.main(ActivityThread.java:4987) 
                                                   at java.lang.reflect.Method.invokeNative(Native Method) 
                                                   at java.lang.reflect.Method.invoke(Method.java:511) 
                                                   at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:821) 
                                                   at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:584) 
                                                   at dalvik.system.NativeStart.main(Native Method) 
                                                Caused by: java.lang.NullPointerException
                                                   at com.google.maps.api.android.lib6.gmm6.m.ad.a(Unknown Source)
                                                   at com.google.maps.api.android.lib6.gmm6.c.h.a(Unknown Source)
                                                   at com.google.maps.api.android.lib6.gmm6.c.y.a(Unknown Source)
                                                   at com.google.maps.api.android.lib6.e.bd.a(Unknown Source)
                                                   at com.google.maps.api.android.lib6.e.ev.a(Unknown Source)
                                                   at com.google.maps.api.android.lib6.e.z.a(Unknown Source)
                                                   at com.google.maps.api.android.lib6.e.y.a(Unknown Source)
                                                   at com.google.android.gms.maps.internal.u.onTransact(SourceFile:107)
                                                   at android.os.Binder.transact(Binder.java:326)
                                                   at com.google.android.gms.maps.internal.IMapFragmentDelegate$zza$zza.onCreateView(Unknown Source)
                                                   at com.google.android.gms.maps.MapFragment$zza.onCreateView(Unknown Source)
                                                   at com.google.android.gms.dynamic.zza$4.zzb(Unknown Source)
                                                   at com.google.android.gms.dynamic.zza.zza(Unknown Source)
                                                   at com.google.android.gms.dynamic.zza.onCreateView(Unknown Source)
                                                   at com.google.android.gms.maps.MapFragment.onCreateView(Unknown Source)
                                                   at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:807)
                                                   at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:1013)
                                                   at android.app.FragmentManagerImpl.addFragment(FragmentManager.java:1112)
                                                   at android.app.Activity.onCreateView(Activity.java:4676)
                                                   at android.support.v4.app.BaseFragmentActivityHoneycomb.onCreateView(BaseFragmentActivityHoneycomb.java:34)
                                                   at android.support.v4.app.FragmentActivity.onCreateView(FragmentActivity.java:79)
                                                   at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:680)
                                                   at android.view.LayoutInflater.rInflate(LayoutInflater.java:746) 
                                                   at android.view.LayoutInflater.inflate(LayoutInflater.java:489) 
                                                   at android.view.LayoutInflater.inflate(LayoutInflater.java:396) 
                                                   at android.view.LayoutInflater.inflate(LayoutInflater.java:352) 
                                                   at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:258) 
                                                   at android.app.Activity.setContentView(Activity.java:1867) 
                                                   at scpp.globaleye.com.scppclient.ui.MapsActivity.onCreate(MapsActivity.java:44) 
                                                   at android.app.Activity.performCreate(Activity.java:5020) 
                                                   at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1080) 
                                                   at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2148) 
                                                   at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2211) 
                                                   at android.app.ActivityThread.access$600(ActivityThread.java:149) 
                                                   at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1300) 
                                                   at android.os.Handler.dispatchMessage(Handler.java:99) 
                                                   at android.os.Looper.loop(Looper.java:153) 
                                                   at android.app.ActivityThread.main(ActivityThread.java:4987) 
                                                   at java.lang.reflect.Method.invokeNative(Native Method) 
                                                   at java.lang.reflect.Method.invoke(Method.java:511) 
                                                   at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:821) 
                                                   at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:584) 
                                                   at dalvik.system.NativeStart.main(Native Method) 
我的地图活动课程。我注释另一行并找到
setContentView(R.layout.activity\u映射)传递此错误并停止应用程序

 public class MapsActivity extends FragmentActivity implements LocationListener {

    GoogleMap googleMap;
    double start_lat,stop_lat,start_lng,stop_lng,lat,lng;
    Criteria criteria;
    LocationManager locationManager;
    String provider;
    Location location;
    Button start_btn,stop_btn;
    TextView tv;
    float[] distance = new float[1];

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

        setContentView(R.layout.activity_maps);
        //MapFragment fm = (MapFragment) getFragmentManager().findFragmentById(R.id.map);

        //System.out.println("on createteeeeeeeeeeeeeee");

        //SupportMapFragment fm = (SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map);

        /*googleMap = fm.getMap();
        getLocation();

        //////button
        start_btn = (Button) findViewById(R.id.button1);
        stop_btn = (Button) findViewById(R.id.button2);
        stop_btn.setEnabled(false);

        start_btn.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
                // Perform action on click
                //System.out.println("startttttttttttttttttttttttttbbbbbbbbbbbbbbbbbbbbbbbbbbbbb");
                if(tv != null){
                    tv.setText("");
                }

                stop_btn.setEnabled(true);
                start_btn.setEnabled(false);
                getStarrtLoc(location);

            }
        });

        stop_btn.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
                // Perform action on click
                //System.out.println("stoppppppppppppppppppppppppppbbbbbbbbbbbbbbbbbbbbbbbbbbbbb");
                start_btn.setEnabled(true);
                stop_btn.setEnabled(false);
                getStoptLoc(location);
            }
        });*/

    }
    @Override
    public void onLocationChanged(Location loc) {

        location = loc;
        //System.out.println("changggggggggggggggggggggggggg"+loc.getLatitude()+loc.getLongitude());
    }

    @Override
    public void onProviderDisabled(String provider) {
        // TODO Auto-generated method stub
    }

    @Override
    public void onProviderEnabled(String provider) {
        // TODO Auto-generated method stub
    }

    @Override
    public void onStatusChanged(String provider, int status, Bundle extras) {
        // TODO Auto-generated method stub
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        return true;
    }

    public Location getLocation(){
        if (ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
            //return;
            Toast.makeText(this,"NO PERMISSION", Toast.LENGTH_LONG).show();
        }
        // Enabling MyLocation Layer of Google Map
        googleMap.setMyLocationEnabled(true);

        // Getting LocationManager object from System Service LOCATION_SERVICE
        locationManager = (LocationManager) getSystemService(LOCATION_SERVICE);

        // Creating a criteria object to retrieve provider
        criteria = new Criteria();

        // Getting the name of the best provider
        provider = locationManager.getBestProvider(criteria, true);

        // Getting Current Location
        if (ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
            //return;
            Toast.makeText(this,"NO PERMISSION", Toast.LENGTH_LONG).show();
        }
        location = locationManager.getLastKnownLocation(provider);

        if(location!=null){
            Toast.makeText(this,"GPS FIXED", Toast.LENGTH_LONG).show();
            //onLocationChanged(location);
            //return location;
            lat=location.getLatitude();
            lng=location.getLongitude();
        }
        locationManager.requestLocationUpdates(provider,0,0, this);
        //System.out.println("llllllllllllllllllllllllllllllllllllll"+lat+lng);
        return location;
    }

    public void getStarrtLoc(Location start_loc){
        start_lat = start_loc.getLatitude();
        start_lng = start_loc.getLongitude();
        //System.out.println("startttttttttttttttttttttttttttttttttt"+start_lat+"ffffffffff"+start_lng);

    }

    public void getStoptLoc(Location stop_loc){

        stop_lat = stop_loc.getLatitude();
        stop_lng = stop_loc.getLongitude();
        //System.out.println("stppppppppppppppppppppppppppppppppppppp"+stop_lat+"ffffffffff"+stop_lng);
        calcDistance();
        tv = (TextView) findViewById(R.id.textView);
        tv.setText("Distance :"+distance[0]);
        //System.out.println("dddddddddd"+distance[0]);
    }

    public void calcDistance(){
        Location.distanceBetween(start_lat,start_lng,stop_lat,stop_lng,distance);
    }

    @Override
    public void onBackPressed() {
          super.onBackPressed();
            Intent intent = new Intent(MapsActivity.this, UserSelect.class);
            MapsActivity.this.startActivity(intent);
            MapsActivity.this.finish();
        }
}
我的活动\u Map.xml文件

  <?xml version="1.0" encoding="utf-8"?> <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=".ui.MapsActivity">

    <fragment
        xmlns:map="http://schemas.android.com/apk/res-auto"
        android:name="com.google.android.gms.maps.MapFragment"
        android:id="@+id/map"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_above="@+id/layout1"
        tools:layout="@layout/activity_maps" />

    <RelativeLayout
        android:orientation="vertical"
        android:layout_width="match_parent"
        android:layout_height="70dp"
        android:id="@+id/layout1"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:layout_alignParentBottom="true">

        <Button
        android:layout_width="145dp"
        android:layout_height="70dp"
        android:text="Start Ride"
        android:id="@+id/button1"
        android:layout_alignParentLeft="true"/>

        <Button
        android:layout_width="145dp"
        android:layout_height="70dp"
        android:text="Stop Ride"
        android:id="@+id/button2"
        android:layout_alignParentRight="true"/>

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="70dp"
            android:text=""
            android:id="@+id/textView"
            android:layout_toLeftOf="@+id/button2"
            android:layout_toRightOf="@+id/button1"
            android:layout_toStartOf="@id/button2"
            android:layout_toEndOf="@+id/button1" />

    </RelativeLayout>


</RelativeLayout>

my androidMainfest.xml

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


    <uses-sdk
        android:minSdkVersion="16"
        />

    <uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.CAMERA" />

    <!-- To boot complete broadcast receiver -->
    <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />

    <!-- External storage for caching -->
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

    <!--
         The ACCESS_COARSE/FINE_LOCATION permissions are not required to use
         Google Maps Android API v2, but you must specify either coarse or fine
         location permissions for the 'MyLocation' functionality. 
    -->
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />



    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:supportsRtl="true"
        android:theme="@style/AppTheme"
        >

        <!--
            The API key for Google Maps-based APIs is defined as a string resource.
            (See the file "res/values/google_maps_api.xml").
            Note that the API key is linked to the encryption key used to sign the APK.
            You need a different API key for each encryption key, including the release key that is used to
            sign the APK for publishing.
            You can define the keys for the debug and release targets in src/debug/ and src/release/.
       -->
        <meta-data
            android:name="com.google.android.geo.API_KEY"
            android:value="AIzaSyBLN7wET4T0n6gu6Jr3AwE6jOQpqICkMBE" />

        <service
            android:name=".services.RemoteSenzService"
            android:enabled="true"
            android:exported="true"></service>

        <activity android:name=".ui.Login">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>


        <activity android:name=".ui.Home" />
        <activity android:name=".ui.Services_View" />
        <activity android:name=".ui.Update_Profile" />
        <activity android:name=".ui.UserSelect" />
        <activity android:name=".ui.Wallet" />
        <activity android:name=".ui.Registration" />
        <activity
            android:name=".ui.MapsActivity"
            android:label="@string/title_activity_maps">
        </activity>


    </application>

</manifest>

我认为这是因为您使用的是FragmentActivity,所以应该使用SupportMapFragment而不是MapFragment(因为support API活动与support library的Fragment类一起工作,而不是与基本框架的Fragment类一起工作)。试着换一行

android:name="com.google.android.gms.maps.MapFragment"
对此

android:name="com.google.android.gms.maps.SupportMapFragment"

作为旁注,需要注意的是,您还应该使用AppCompatActivity而不是FragmentActivity。

在将测试代码移植到我的生产应用程序后,我刚刚遇到了这条错误消息

就我而言,我忘记在清单文件中包含以下内容:

<meta-data
        android:name="com.google.android.geo.API_KEY"
        android:value="@string/google_maps_key" />

我很好地复制了字符串数据,但是我从头开始构建Mainfest,所以错过了googlemapsapi的关键信息


希望这能对有同样问题的人有所帮助。

@剑客,你能再解释一下这是什么意思吗?[当我调用此活动时,映射_activity.xml文件,抛出此错误并停止。您说过,标记应该是'Fragment']?Regard为什么在片段中声明“xmlns:map”名称空间?你不需要它。您使用的Google Play Services库版本是什么?删除它。但结果还是一样。你使用的是什么库版本?设备安卓版本4.1.2,buildToolsVersion“23.0.2”,minsdk=16,类路径'com.google.gms:google服务:2.0.0-alpha3',编译'com.google.Android.gms:play服务:8.3.0'和你的编译版本?