初始化错误谷歌地图android回收视图

初始化错误谷歌地图android回收视图,android,google-maps,android-fragments,android-recyclerview,Android,Google Maps,Android Fragments,Android Recyclerview,我正在尝试添加一个地图作为回收视图的一个项目,,它将膨胀成一个片段。 我在ViewHolder类中初始化映射,在构造函数方法中,我使用 mMapView.onCreate(空)和 mMapView.getMapAsync(此文件)方法。 此错误在应用程序运行期间出现: Caused by: java.lang.ClassNotFoundException: Didn't find class "com.google.android.chimera.Fragment" on path: DexPa

我正在尝试添加一个地图作为
回收视图的一个项目,
,它将膨胀成一个片段。 我在ViewHolder类中初始化映射,在构造函数方法中,我使用
mMapView.onCreate(空)
mMapView.getMapAsync(此文件)方法。
此错误在应用程序运行期间出现:

Caused by: java.lang.ClassNotFoundException: Didn't find class "com.google.android.chimera.Fragment" on path: DexPathList[[zip file "/data/data/com.google.android.gms/app_chimera/m/00000006/DynamiteModulesB_GmsCore_prodmnc_xhdpi_release.apk"],nativeLibraryDirectories=[/data/user/0/com.google.android.gms/app_chimera/m/00000006/n/arm64-v8a, /system/lib64, /vendor/lib64]]
我正在使用支持库中的以下库:

  • com.google.android.gms:play services:10.2.1
  • com.google.android.gms:play services地图:10.2.1
  • 支持:recyclerview-v7:25.3.0
  • 支持:appcompat-v7:25.3.0
  • support:support-v4:25.3.0
  • 支持:设计:25.3.0
处理这个问题有什么想法吗

class ListingsAdapter extends RecyclerView.Adapter<ListingsAdapter.ViewHolder> {

    private final EarthquakesResponse itemResponse;

    ListingsAdapter() {
        itemResponse = new EarthquakesResponse();
    }

    @Override
    public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        final View view = LayoutInflater.from(parent.getContext())
                .inflate(R.layout.item_listings_earthquake, parent, false);
        return new ViewHolder(parent.getContext(), view);
    }

    @Override
    public void onBindViewHolder(ViewHolder holder, int position) {
        final Feature itemDetail = itemResponse.getFeatures().get(position);
        holder.prepareItem(itemDetail);
    }

    @Override
    public int getItemCount() {
        return itemResponse.getMetadata() != null ? itemResponse.getMetadata().getCount() : 0;
    }

    void changeResponseData(@NonNull EarthquakesResponse newResponse) {
        final EarthquakeDiffCallback callback
                = new EarthquakeDiffCallback(this.itemResponse, newResponse);
        final DiffUtil.DiffResult diffResult = DiffUtil.calculateDiff(callback);

        this.itemResponse.setMetadata(newResponse.getMetadata());
        this.itemResponse.setBbox(newResponse.getBbox());
        this.itemResponse.setFeatures(newResponse.getFeatures());
        this.itemResponse.setType(newResponse.getType());

        diffResult.dispatchUpdatesTo(this);
    }


    @Override
    public void onViewRecycled(ViewHolder holder) {
        super.onViewRecycled(holder);
        if (holder.mMap != null) {
            holder.mMap.clear();
            holder.mMap.setMapType(GoogleMap.MAP_TYPE_NONE);
        }
    }

    class ViewHolder extends RecyclerView.ViewHolder implements OnMapReadyCallback {

        private final Context mContext;
        private final TextView mItemTitle;
        private MapView mLocation;
        private GoogleMap mMap;

        ViewHolder(Context context, View itemView) {
            super(itemView);
            this.mContext = context;
            this.mItemTitle = (TextView) itemView.findViewById(R.id.textview_itemlisting_title);
            mLocation = (MapView) itemView.findViewById(R.id.mapview_itemlisting_location);
            if (mLocation != null) {
                mLocation.onCreate(null);
                mLocation.getMapAsync(this);
            }
        }

        void prepareItem(@NonNull Feature itemDetail) {
            mItemTitle.setText(itemDetail.getProperties().getPlace());
            setMapLocation(itemDetail);
        }

        private void setMapLocation(@NonNull Feature itemDetail) {
            final List<Double> coordinates = itemDetail.getGeometry().getCoordinates();
            LatLng location = new LatLng(coordinates.get(1), coordinates.get(0));
            mMap.clear();
            mMap.addMarker(new MarkerOptions().position(location));
            mMap.moveCamera(CameraUpdateFactory.newLatLngZoom(location, 8f));
        }

        @Override
        public void onMapReady(GoogleMap googleMap) {
            this.mMap = googleMap;
            MapsInitializer.initialize(this.mContext);
            this.mMap.setMapType(GoogleMap.MAP_TYPE_NORMAL);
            googleMap.getUiSettings().setMapToolbarEnabled(false);

        }
    }
}
class ListingsAdapter扩展了RecyclerView.Adapter{
私人最终地震响应项目响应;
ListingsAdapter(){
itemResponse=新的地震响应();
}
@凌驾
public ViewHolder onCreateViewHolder(视图组父级,int-viewType){
最终视图=LayoutInflater.from(parent.getContext())
.充气(R.layout.item\u listings\u地震,父项,错误);
返回新的ViewHolder(parent.getContext(),视图);
}
@凌驾
公共无效onBindViewHolder(ViewHolder,int位置){
final Feature itemDetail=itemResponse.getFeatures().get(位置);
持有人。准备项目(项目详情);
}
@凌驾
public int getItemCount(){
return itemResponse.getMetadata()!=null?itemResponse.getMetadata().getCount():0;
}
void changeressedata(@NonNull-earthquickresponse-newResponse){
最终地震
=新地震DiffCallback(this.itemResponse,newResponse);
最终DiffUtil.diffesult diffesult=DiffUtil.calculateDiff(回调);
this.itemResponse.setMetadata(newResponse.getMetadata());
this.itemResponse.setbox(newResponse.getBbox());
this.itemResponse.setFeatures(newResponse.getFeatures());
this.itemResponse.setType(newResponse.getType());
diffResult.dispatchUpdatesTo(本);
}
@凌驾
视图上的公共无效已回收(视图持有人){
super.onViewRecycled(支架);
如果(holder.mMap!=null){
保持架.mMap.clear();
holder.mMap.setMapType(GoogleMap.MAP\u TYPE\u无);
}
}
类ViewHolder扩展了RecyclerView.ViewHolder在MapReadyCallback上实现{
私有最终上下文mContext;
私有最终文本视图mItemTitle;
私有地图视图位置;
私有谷歌地图;
ViewHolder(上下文、视图项视图){
超级(项目视图);
this.mContext=上下文;
this.mItemTitle=(TextView)itemView.findViewById(R.id.TextView\u itemlisting\u title);
mLocation=(MapView)itemView.findViewById(R.id.MapView\u ItemList\u位置);
如果(mLocation!=null){
mLocation.onCreate(空);
mLocation.getMapAsync(这个);
}
}
void prepareItem(@NonNull Feature itemDetail){
mItemTitle.setText(itemDetail.getProperties().getPlace());
setMapLocation(itemDetail);
}
私有void setMapLocation(@NonNull Feature itemDetail){
最终列表坐标=itemDetail.getGeometry().getCoordinates();
车床位置=新车床(坐标.get(1),坐标.get(0));
mMap.clear();
mMap.addMarker(新的MarkerOptions().position(位置));
mMap.moveCamera(CameraUpdateFactory.newLatLngZoom(位置8f));
}
@凌驾
4月1日公开作废(谷歌地图谷歌地图){
this.mMap=谷歌地图;
初始化(this.mContext);
this.mMap.setMapType(GoogleMap.MAP\u TYPE\u NORMAL);
googleMap.getUiSettings().setMapToolbarEnabled(false);
}
}
}

您正在xml中添加一些应用程序找不到的类“com.google.android.chimera.Fragment”。您可以在地图的片段中添加以下xml代码

    <fragment
    android:id="@+id/map"
    class="com.google.android.gms.maps.SupportMapFragment"
    android:layout_width="match_parent"
    android:layout_height="350dp" />

您正在xml中添加一些应用程序找不到的类“com.google.android.chimera.Fragment”。您可以在地图的片段中添加以下xml代码

    <fragment
    android:id="@+id/map"
    class="com.google.android.gms.maps.SupportMapFragment"
    android:layout_width="match_parent"
    android:layout_height="350dp" />