创建FirebaseRecycleAdapter片段,&#34; android.view.InflateException:二进制XML文件行#17:错误膨胀类<unknown>&#34;

时间:2016-11-02 15:35:38

标签: java android firebase firebaseui

我创建了一个片段,并希望在片段中设计FirebaseRecycleView,当我在Android中运行我的应用时,它总是崩溃。

[logcat的]

singleDigits.get(0) -> [1];
singleDigits.get(3) -> [6];
...

[片段] FirebaseRecycleAdapter在此处创建。

android.view.InflateException: Binary XML file line #17: Error inflating class <unknown>
at android.view.LayoutInflater.createView(LayoutInflater.java:637)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:747)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:810)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:813)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:813)
at android.view.LayoutInflater.inflate(LayoutInflater.java:508)
at android.view.LayoutInflater.inflate(LayoutInflater.java:418)
at com.firebase.ui.database.FirebaseRecyclerAdapter.onCreateViewHolder(FirebaseRecyclerAdapter.java:160)
at android.support.v7.widget.RecyclerView$Adapter.createViewHolder(RecyclerView.java:5482)
at android.support.v7.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:4707)
at android.support.v7.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:4617)
at android.support.v7.widget.LinearLayoutManager$LayoutState.next(LinearLayoutManager.java:1994)
at android.support.v7.widget.LinearLayoutManager.layoutChunk(LinearLayoutManager.java:1390)
at android.support.v7.widget.LinearLayoutManager.fill(LinearLayoutManager.java:1353)
at android.support.v7.widget.LinearLayoutManager.onLayoutChildren(LinearLayoutManager.java:574)
at android.support.v7.widget.RecyclerView.dispatchLayoutStep2(RecyclerView.java:3028)
at android.support.v7.widget.RecyclerView.dispatchLayout(RecyclerView.java:2906)
at android.support.v7.widget.RecyclerView.consumePendingUpdateOperations(RecyclerView.java:1482)
at android.support.v7.widget.RecyclerView.access$400(RecyclerView.java:147)
at android.support.v7.widget.RecyclerView$1.run(RecyclerView.java:294)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:775)
at android.view.Choreographer.doCallbacks(Choreographer.java:588)
at android.view.Choreographer.doFrame(Choreographer.java:557)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:761)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5276)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:911)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:706)
Caused by: java.lang.reflect.InvocationTargetException
at java.lang.reflect.Constructor.newInstance(Native Method)
at java.lang.reflect.Constructor.newInstance(Constructor.java:288)
at android.view.LayoutInflater.createView(LayoutInflater.java:611)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:747) 
at android.view.LayoutInflater.rInflate(LayoutInflater.java:810) 
at android.view.LayoutInflater.rInflate(LayoutInflater.java:813) 
at android.view.LayoutInflater.rInflate(LayoutInflater.java:813) 
at android.view.LayoutInflater.inflate(LayoutInflater.java:508) 
at android.view.LayoutInflater.inflate(LayoutInflater.java:418) 
at com.firebase.ui.database.FirebaseRecyclerAdapter.onCreateViewHolder(FirebaseRecyclerAdapter.java:160) 
at android.support.v7.widget.RecyclerView$Adapter.createViewHolder(RecyclerView.java:5482) 
at android.support.v7.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:4707) 
at android.support.v7.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:4617) 
at android.support.v7.widget.LinearLayoutManager$LayoutState.next(LinearLayoutManager.java:1994) 
at android.support.v7.widget.LinearLayoutManager.layoutChunk(LinearLayoutManager.java:1390) 
at android.support.v7.widget.LinearLayoutManager.fill(LinearLayoutManager.java:1353) 
at android.support.v7.widget.LinearLayoutManager.onLayoutChildren(LinearLayoutManager.java:574) 
at android.support.v7.widget.RecyclerView.dispatchLayoutStep2(RecyclerView.java:3028) 
at android.support.v7.widget.RecyclerView.dispatchLayout(RecyclerView.java:2906) 
at android.support.v7.widget.RecyclerView.consumePendingUpdateOperations(RecyclerView.java:1482) 
at android.support.v7.widget.RecyclerView.access$400(RecyclerView.java:147) 
at android.support.v7.widget.RecyclerView$1.run(RecyclerView.java:294) 
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:775) 
at android.view.Choreographer.doCallbacks(Choreographer.java:588) 
at android.view.Choreographer.doFrame(Choreographer.java:557) 
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:761) 
at android.os.Handler.handleCallback(Handler.java:739) 
at android.os.Handler.dispatchMessage(Handler.java:95) 
at android.os.Looper.loop(Looper.java:135) 
at android.app.ActivityThread.main(ActivityThread.java:5276) 
at java.lang.reflect.Method.invoke(Native Method) 
at java.lang.reflect.Method.invoke(Method.java:372) 
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:911) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:706) 
Caused by: java.lang.IllegalArgumentException: adjustViewBounds not supported.
at de.hdodenhof.circleimageview.CircleImageView.setAdjustViewBounds(CircleImageView.java:107)
at android.widget.ImageView.<init>(ImageView.java:157)
at android.widget.ImageView.<init>(ImageView.java:135)
at de.hdodenhof.circleimageview.CircleImageView.<init>(CircleImageView.java:69)
at de.hdodenhof.circleimageview.CircleImageView.<init>(CircleImageView.java:65)
at java.lang.reflect.Constructor.newInstance(Native Method) 
at java.lang.reflect.Constructor.newInstance(Constructor.java:288) 
at android.view.LayoutInflater.createView(LayoutInflater.java:611) 
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:747) 
at android.view.LayoutInflater.rInflate(LayoutInflater.java:810) 
at android.view.LayoutInflater.rInflate(LayoutInflater.java:813) 
at android.view.LayoutInflater.rInflate(LayoutInflater.java:813) 
at android.view.LayoutInflater.inflate(LayoutInflater.java:508) 
at android.view.LayoutInflater.inflate(LayoutInflater.java:418) 
at com.firebase.ui.database.FirebaseRecyclerAdapter.onCreateViewHolder(FirebaseRecyclerAdapter.java:160) 
at android.support.v7.widget.RecyclerView$Adapter.createViewHolder(RecyclerView.java:5482) 
at android.support.v7.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:4707) 
at android.support.v7.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:4617) 
at android.support.v7.widget.LinearLayoutManager$LayoutState.next(LinearLayoutManager.java:1994) 
at android.support.v7.widget.LinearLayoutManager.layoutChunk(LinearLayoutManager.java:1390) 
at android.support.v7.widget.LinearLayoutManager.fill(LinearLayoutManager.java:1353) 
at android.support.v7.widget.LinearLayoutManager.onLayoutChildren(LinearLayoutManager.java:574) 
at android.support.v7.widget.RecyclerView.dispatchLayoutStep2(RecyclerView.java:3028) 
at android.support.v7.widget.RecyclerView.dispatchLayout(RecyclerView.java:2906) 
at android.support.v7.widget.RecyclerView.consumePendingUpdateOperations(RecyclerView.java:1482) 
at android.support.v7.widget.RecyclerView.access$400(RecyclerView.java:147) 
at android.support.v7.widget.RecyclerView$1.run(RecyclerView.java:294) 
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:775) 
at android.view.Choreographer.doCallbacks(Choreographer.java:588) 
at android.view.Choreographer.doFrame(Choreographer.java:557) 
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:761) 
at android.os.Handler.handleCallback(Handler.java:739) 
at android.os.Handler.dispatchMessage(Handler.java:95) 
at android.os.Looper.loop(Looper.java:135) 
at android.app.ActivityThread.main(ActivityThread.java:5276) 
at java.lang.reflect.Method.invoke(Native Method) 
at java.lang.reflect.Method.invoke(Method.java:372) 
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:911) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:706) 

[布局] 片段的布局。

import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import com.firebase.ui.database.FirebaseRecyclerAdapter;
import com.google.firebase.database.DatabaseReference;
import com.google.firebase.database.FirebaseDatabase;

public class NewsfeedFragment extends Fragment {
private RecyclerView mPhotoList;
private DatabaseReference mDatabase;


public NewsfeedFragment() {
    // Required empty public constructor
}


@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
    // Inflate the layout for this fragment
   View view = inflater.inflate(R.layout.fragment_newsfeed, container, false);

    mDatabase = FirebaseDatabase.getInstance().getReference().child("images");

    mPhotoList =(RecyclerView) view.findViewById(R.id.photo_list);
    mPhotoList.setHasFixedSize(true);
    mPhotoList.setLayoutManager(new LinearLayoutManager(getContext()));


    return view;


}

@Override
public void onStart() {
    super.onStart();

    FirebaseRecyclerAdapter<News, NewsViewHolder> firebaseRecyclerAdapter = new FirebaseRecyclerAdapter<News, NewsViewHolder>(
            News.class,
            R.layout.photo_row,
            NewsViewHolder.class,
            mDatabase
    ) {

        @Override
        protected void populateViewHolder(NewsViewHolder viewHolder, News model, int position) {

            viewHolder.setTitle(model.getTitle());
            viewHolder.setDesc(model.getDesc());

        }
    };

    mPhotoList.setAdapter(firebaseRecyclerAdapter);
}

public static class NewsViewHolder extends RecyclerView.ViewHolder{

    View mView;

    public NewsViewHolder(View itemView) {
        super(itemView);

        mView = itemView;
    }

    public void setTitle(String title){
        TextView postTitle =  (TextView) mView.findViewById(R.id.postTitle);
        postTitle.setText(title);
    }

    public void setDesc(String desc){
        TextView postDesc = (TextView)mView.findViewById(R.id.postDescription);
        postDesc.setText(desc);
    }


}
}

0 个答案:

没有答案