অ্যান্ড্রয়েড 5.0 এ রিসাইক্লারভিউ ব্যবহার করার চেষ্টা করার সময় অ্যাপ ক্রাশ হচ্ছে


91

আমি নতুন রিসাইক্লারভিউয়ের সাথে ঝামেলা করার চেষ্টা করছি এবং যখনই আমি এটি চালানোর চেষ্টা করি তখনই আমার অ্যাপটি তত্ক্ষণাত ক্রাশ হয়ে যায়। এখান থেকে পদ্ধতিগুলি অ্যাক্সেস করার চেষ্টা করার জন্য এটি আমাকে নুলপয়েন্টার এক্সসেপশন দেয় android.support.v7.widget.RecyclerView। আমি অন্যান্য পোস্টগুলিতে দেখেছি এবং দেখেছি বেশিরভাগ লোকের কাছে নেই compile 'com.android.support:recyclerview-v7:+'তবে আমি এটি চেষ্টা করেছি এবং এটি মোটেই সহায়তা করে নি। এই মুহুর্তে কী করা উচিত তা নিশ্চিত নয়, যে কোনও সহায়তা প্রশংসিত হবে। এখানে ত্রুটি লগ: (আমি একটি ছবি পোস্ট করব তবে আমার কাছে এখনও 10 টি প্রতিনিধিত্ব নেই)

java.lang.NullPointerException: Attempt to invoke virtual method 'void android.support.v7.widget.RecyclerView$LayoutManager.onMeasure(android.support.v7.widget.RecyclerView$Recycler, android.support.v7.widget.RecyclerView$State, int, int)' on a null object reference
        at android.support.v7.widget.RecyclerView.onMeasure(RecyclerView.java:1764)
        at android.view.View.measure(View.java:17430)
        at android.widget.RelativeLayout.measureChildHorizontal(RelativeLayout.java:727)
        at android.widget.RelativeLayout.onMeasure(RelativeLayout.java:463)
        at android.view.View.measure(View.java:17430)
        at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5463)
        at android.widget.FrameLayout.onMeasure(FrameLayout.java:430)
        at android.view.View.measure(View.java:17430)
        at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5463)
        at android.widget.FrameLayout.onMeasure(FrameLayout.java:430)
        at android.view.View.measure(View.java:17430)
        at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5463)
        at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1436)
        at android.widget.LinearLayout.measureVertical(LinearLayout.java:722)
        at android.widget.LinearLayout.onMeasure(LinearLayout.java:613)
        at android.view.View.measure(View.java:17430)
        at android.support.v4.widget.DrawerLayout.onMeasure(DrawerLayout.java:851)
        at android.view.View.measure(View.java:17430)
        at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5463)
        at android.widget.FrameLayout.onMeasure(FrameLayout.java:430)
        at android.view.View.measure(View.java:17430)
        at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5463)
        at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1436)
        at android.widget.LinearLayout.measureVertical(LinearLayout.java:722)
        at android.widget.LinearLayout.onMeasure(LinearLayout.java:613)
        at android.view.View.measure(View.java:17430)
        at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5463)
        at android.widget.FrameLayout.onMeasure(FrameLayout.java:430)
        at android.view.View.measure(View.java:17430)
        at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5463)
        at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1436)
        at android.widget.LinearLayout.measureVertical(LinearLayout.java:722)
        at android.widget.LinearLayout.onMeasure(LinearLayout.java:613)
        at android.view.View.measure(View.java:17430)
        at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5463)
        at android.widget.FrameLayout.onMeasure(FrameLayout.java:430)
        at com.android.internal.policy.impl.PhoneWindow$DecorView.onMeasure(PhoneWindow.java:2560)
        at android.view.View.measure(View.java:17430)
        at android.view.ViewRootImpl.performMeasure(ViewRootImpl.java:2001)
        at android.view.ViewRootImpl.measureHierarchy(ViewRootImpl.java:1166)
        at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1372)
        at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1054)
        at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:5786)
        at android.view.Choreographer$CallbackRecord.run(Choreographer.java:767)
        at android.view.Choreographer.doCallbacks(Choreographer.java:580)
        at android.view.Choreographer.doFrame(Choreographer.java:550)
        at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:753)
        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:5221)
        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:898)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:693)

ভিউপেজার ট্যাবগুলির দ্বারা এই ত্রুটিযুক্ত যার জন্য এই সমাধানটি দেখুন
হাসান গিলাক

আপনি কি এটিকে সমাধান করেছেন?। দয়া করে আমাকে একই সমস্যা করতে সহায়তা করুন
সাগর

আপনি onCreateViewযা সরিয়ে / ধ্বংস / নিবন্ধভুক্ত করেন তাতে যা সেট / তৈরি / নিবন্ধন করতে ভুলবেন না onDestroyView... সেই জীবনচক্রগুলি অনুসরণ করতে হবে!
সাকিবয়

উত্তর:


211

এই সমস্যাটি সাধারণত তখন ঘটে যখন এর জন্য কোনও LayoutManagerসরবরাহ করা হয়নি RecyclerView। আপনি এটি এর মতো করতে পারেন:

final LinearLayoutManager layoutManager = new LinearLayoutManager(context);
layoutManager.setOrientation(LinearLayoutManager.VERTICAL);
recyclerView.setLayoutManager(layoutManager);

14
আমি মনে করি এটি চূড়ান্ত হওয়ার দরকার নেই তাই আমি মনে করি না এটিই সমস্যা ছিল। আমার ক্ষেত্রে আমি পুনর্ব্যবহারযোগ্য ভিউয়ের সাথে একটি টুকরা বাস্তবায়ন করছিলাম এবং আমি অনক্রিটভিউ থেকে এটির একটি রেফারেন্স ধরে রাখার চেষ্টা করেছি এবং ডেটা লোড হওয়ার পরে একটি লেআউট ম্যানেজার সেট করার চেষ্টা করেছি। আমার এই সমস্যাটি ছিল এবং আমি যখন গেমিন অনক্রিটভিউ পদ্ধতিতে লেআউট ম্যানেজারটি সেট করেছিলাম তখন তা চলে গেল।
নেমানজা কোভাসেভিক

4
@ নেমনজাকোভাভিভিও ভাল, আমি মনে করি যে প্রতিটি পরিবর্তনশীল যা পরে পরিবর্তন করার দরকার নেই তা হিসাবে ঘোষণা করতে হবে final, সে কারণেই আমি এটি finalএখানে ঘোষণা করেছি declared
আগা

4
যেহেতু লিনিয়ারলআউটআম্যানাজারটি ডিফল্টরূপে উল্লম্ব, তাই আপনি ব্যবহার করতে পারেন: রিসাইক্লারভিউ.সেটলয়েআউট ম্যানেজার (নতুন লিনিয়ারলআউটআউট ম্যানেজার (প্রসঙ্গ));
ll

4
Godশ্বরের ধন্যবাদ যে আমরা গুগলকে সেই একই ত্রুটি বার্তাগুলি বুঝতে পারি যা গুগল তাদের দ্বারা বোঝার জন্য তৈরি করে।
heেগেদাস

4
@ ওয়েসলিফ্র্যাঙ্কস, আপনি কেন ১ টি না দেখে নাল বস্তুর রেফারেন্স পেয়ে যাচ্ছেন তা বলা শক্ত। যে কোডটি রিসাইক্লার ভিউ সেট আপ করে এবং ২ the স্ট্যাকট্রেস যা আপনি ক্র্যাশের পরে পাচ্ছেন। :)
আগা

26

আমার ক্ষেত্রে এটি 'চূড়ান্ত' এর সাথে সংযুক্ত ছিল না, তবে @ নেমাঞ্জকোভাভিভিয়ে উল্লিখিত ইস্যুতে @ উত্তর উত্তরে মন্তব্য করেছেন। আমি ডেটা লোডের উপর একটি লেআউট ম্যানেজার স্থাপন করছিলাম এবং এটি একই ক্রাশের কারণ। আমার খণ্ডটির লেআউটটি ম্যানেজার সেটআপটি অনক্রিটভিউতে সরানোর পরে সমস্যাটি স্থির হয়ে গেল।

এটার মতো কিছু:

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState)
{
...
mRecyclerView = (RecyclerView) rootView.findViewById(R.id.recycler);

mLayoutManager = new StaggeredGridLayoutManager(2,StaggeredGridLayoutManager.VERTICAL);
mRecyclerView.setLayoutManager(mLayoutManager);

4
আরও একবার: আমি বলব না যে এই সমস্যাটি কোনওভাবে ভেরিয়েবলের চূড়ান্ত না হওয়ার সাথে সম্পর্কিত। বিষয়টি হ'ল যে সরবরাহ LayoutManager করা হয়নি , এটি। আপনি পরিবর্তনশীলটিকে LayoutManagerচূড়ান্ত দিকে নির্দেশ করতে পারেন , না চূড়ান্ত নয় - এটি কোনও পরিবর্তন করে না।
আগা

@ ইয়ুরিক আমি ক্রিয়াকলাপে পুনরায় ব্যবহারকারক ব্যবহার করছি যাতে খণ্ডগুলিতে নয়। আমার ক্ষেত্রে কী?
ইউরি

@ আপনার যুগে আপনার ক্রিয়াকলাপের অনিয়ন্ত্রনে লেআউট ম্যানেজার সেটআপ স্থাপন করা উচিত, আমি মনে করি।
YurK

10

আমার জন্য, আমার একই সমস্যা ছিল, সমস্যাটি ছিল যে এক্সএমএলটিতে একটি অব্যবহৃত রিসাইকেলার ভিউ ছিল দেখুন কিন্তু আমি এটিকে ক্রিয়াকলাপের কোনও অ্যাডাপ্টারের সাথে আবদ্ধ করছি না, সুতরাং সমস্যাটি। আমি এক্সএমএলে যেমন অব্যবহৃত পুনর্ব্যবহারযোগ্য ভিউগুলি সরিয়ে ফেলার সাথে সাথে এটি সমাধান করা হয়েছিল

যেমন - আমি কোডটি কল করা হয়নি বা কোনও অ্যাডাপ্টার সেট করা হয়েছে বলে আমি এই দৃশ্যটি সরিয়েছি

<android.support.v7.widget.RecyclerView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:id="@+id/rv_profileview_allactivities"
        android:visibility="gone" />

এখানেও সবকিছু নিখুঁত ছিল, কিন্তু এটি কাজ করছে না। সুতরাং আমি অব্যবহৃত পুনর্ব্যবহারযোগ্যগুলি সরিয়েছি এবং এটি কোনও সমস্যা ছাড়াই কাজ করেছে। ধন্যবাদ মানুষ @Maurice ^^
Bhupinder

4
একদিন নষ্ট করার পরে আমি আপনার সমাধানটি চেষ্টা করেছিলাম এবং এটি কার্যকর হয়েছে: ডি [:( আমার সময় নষ্ট হয়ে গেছে]
এমফাইসালহাইদার

8

আমার RecyclerView.LayoutManagerযথাযথ সেট থাকা সত্ত্বেও আমি এই ক্রাশটি অনুভব করেছি । এই সমস্যাটি সমাধানের জন্য আমাকে RecyclerView আরম্ভকরণ কোডটি onViewCreated(...)কলব্যাকের মধ্যে সরাতে হয়েছিল ।

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
    View rootView = inflater.inflate(R.layout.fragment_listing, container, false);
    rootView.setTag(TAG);
    return inflater.inflate(R.layout.fragment_listing, container, false);
}

@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
    super.onViewCreated(view, savedInstanceState);

    mLayoutManager = new LinearLayoutManager(getActivity());
    mLayoutManager.setOrientation(LinearLayoutManager.VERTICAL);

    mRecyclerView = (RecyclerView) view.findViewById(R.id.recyclerView);
    mRecyclerView.setItemAnimator(new DefaultItemAnimator());
    mRecyclerView.setLayoutManager(mLayoutManager);

    mAdapter = new ListingAdapter(mListing);
    mRecyclerView.setAdapter(mAdapter);
}

4
তবুও, আমার সমস্যাটির সমাধান হয়নি: / আমি প্রায় প্রতিটি সমাধান চেষ্টা করেছি এবং পেসারভিউতে দেখানোর জন্য একটি খণ্ডের অভ্যন্তরে পুনর্ব্যবহারযোগ্য ভিউ ব্যবহার করার সময় এখনও একই ত্রুটি পেয়েছি :(
এমফায়ালহাইডার ২

অসাধারণ! মুভিং RecyclerViewমধ্যে আরম্ভের কোড onViewCreated(...) কাজ
মার্সেলো Gracietti

আমি এই সমাধানটি করেছিলাম, এবং এটি এখনও আমার কাছে বাতিল। এখনও কোথায় তা বের করার চেষ্টা করছি।
ওয়েসলি

5

setLayoutManagerআপনার RecyclerView#onCreate()পদ্ধতিটি ব্যবহার করা দরকার । recyclerViewকোনও ভিউতে যুক্ত করার আগে এটিতে অবশ্যই LayoutManagerসেট থাকতে হবে।

 private RecyclerView menuAsList;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_home);

    menuAsList = (RecyclerView) findViewById(R.id.recyclerView_mainMenu);
    menuAsList.setLayoutManager(new LinearLayoutManager(Home.this));

}

3

RecyclerViewআইডির ভুল রেফারেন্সের কারণে আমি এই সমস্যাটি পেয়েছি ।

recyclerView = (RecyclerView) findViewById(R.id.rv_followers_list);

প্রতি

recyclerView = (RecyclerView) findViewById(R.id.rv_search_list);

2
recyclerView =
            (RecyclerView) findViewById(R.id.recycler_view2);

আপনার সাথে পুনর্ব্যবহারযোগ্য আইডি চেক করুন, প্রকৃত পুনর্ব্যবহারকারী দৃশ্যের দিকে ইঙ্গিত করে আমার সমস্যাটি সমাধান করেছে


1

আমার সমস্যাটি ছিল আমার এক্সএমএল লাইআউটে আমার একটি অ্যান্ড্রয়েড রয়েছে: অ্যানিমেটলআউটচ্যাঞ্জস সত্যে সেট হয়ে গেছে এবং আমি জাভা কোডের রিসাইক্লিউউয়ের অ্যাডাপ্টারে notifyDataSetChanged () কল করেছি।

সুতরাং, আমি স্রেফ অ্যান্ড্রয়েড সরিয়েছি: আমার লেআউটটি থেকে অ্যানিমেট লেআউটচেন্জগুলি এবং এটি আমার সমস্যাটি পুনরুদ্ধার করেছে।


1

বাটারকনিফ লাইব্রেরি ব্যবহার করার সময় আমার এই সমস্যা হয়েছিল। আমার ছিল:

View rootView = inflater.inflate
                (R.layout.fragment_recipe_detail_view, container, false);
ButterKnife.bind(rootView);

তবে সঠিক সংস্করণটি হ'ল:

View rootView = inflater.inflate
                (R.layout.fragment_recipe_detail_view, container, false);
ButterKnife.bind(this, rootView);

1

ইন Gradle এই লাইব্রেরি বাস্তবায়ন:

implementation 'com.android.support:appcompat-v7:SDK_VER'
implementation 'com.android.support:design:SDK_VER'
implementation 'com.android.support:support-v4:SDK_VER'
implementation 'com.android.support:support-v13:SDK_VER'
implementation 'com.android.support:recyclerview-v7:SDK_VER'

ইন এক্সএমএল ভালো উল্লেখ:

<android.support.v7.widget.RecyclerView
  android:layout_width="match_parent"
  android:layout_height="wrap_content"
  android:id="@+id/recyclerView"/>

ইন অসম্পূর্ণ অংশ আমরা ব্যবহার recyclerViewভালো:

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

       RecyclerView recyclerView = (RecyclerView) rootView.findViewById(R.id.recyclerView);
        RecyclerView.LayoutManager layoutManager = new LinearLayoutManager(getActivity(), LinearLayoutManager.VERTICAL, false);
        recyclerView.setLayoutManager(layoutManager);
        APICallMethod();
        YOURADAPTER = new YOURADAPTER(getActivity(), YOUR_LIST); // you can use that adapter after for loop in response(APICALLMETHOD)
        recyclerView.setAdapter(YOURADAPTER);
        return rootView;
    }

ইন ভ্রমণ আমরা ব্যবহার RecyclerViewভালো:

@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.YOUR_LAYOUT_NAME);

        RecyclerView recyclerView = (RecyclerView) findViewById(R.id.recyclerView);
        RecyclerView.LayoutManager layoutManager = new LinearLayoutManager(getActivity(), LinearLayoutManager.VERTICAL, false);
        recyclerView.setLayoutManager(layoutManager);
        APICallMethod();
        YOURADAPTER = new YOURADAPTER(ACTIVITY_NAME.this, YOUR_LIST); // you can use that adapter after for loop in response(APICALLMETHOD)
        recyclerView.setAdapter(YOURADAPTER);
   }

আপনার যদি অনুভূমিক প্রয়োজন হয় তবে RecyclerViewএটি করুন:

RecyclerView recyclerView = (RecyclerView) findViewById(R.id.recyclerView);
        RecyclerView.LayoutManager layoutManager = new LinearLayoutManager(getActivity(), LinearLayoutManager.HORIZONTAL, false);
        recyclerView.setLayoutManager(layoutManager);
        APICallMethod();
        YOURADAPTER = new YOURADAPTER(ACTIVITY_NAME.this, YOUR_LIST); // you can use that adapter after for loop in response(APICALLMETHOD)
        recyclerView.setAdapter(YOURADAPTER);

আপনি যদি এই জাতীয় ব্যবহার করে গ্রিডলআউটআউট ম্যানেজার ব্যবহার RecyclerViewকরতে চান:

        RecyclerView recyclerView = findViewById(R.id.rvNumbers);
        recyclerView.setLayoutManager(new GridLayoutManager(this, 3)); // 3 is number of columns.
        adapter = new MyRecyclerViewAdapter(this, data);
        recyclerView.setAdapter(adapter);

1

আমি একটি নির্ভরতা ইনজেকশন ব্যবহার করছিলাম - বাটারনিফ এবং এই সমস্যাটি দেখা দিয়েছে কারণ আমি দৃশ্যের সাথে বাঁধাই করি নি।

সুতরাং অনক্রিটের ভিতরে () আমি সবেমাত্র এই লাইনটি প্রবেশ করিয়েছি:

ButterKnife.bind(this);

নির্ভরতা ইনজেকশন সহ আমার রিসাইক্লারভিউ ঘোষণা:

@BindView(R.id.recyclerview)
RecyclerView recyclerView;

1

যারা ব্যবহার করছেন তাদের জন্য: বাস্তবায়ন 'androidx.recyclerview: রিসাইক্লারভিউ: 1.1.0-beta05'

আপনি এটি আপনার এক্সএমএল লেআউটে ব্যবহার করছেন তা নিশ্চিত করুন

এপিআই 27 এর নীচে আমার অ্যাপটি চালানোর সময় আমি একটি ক্র্যাশও পেয়েছি experienced এখানে বার্তার লিঙ্ক's

মূলত, আমি আমার পাঠ্যদর্শনটির ফন্টের আকারটিকে পুনর্ব্যবহারযোগ্য ভিউয়ের মধ্যে পরিবর্তন করার জন্য একটি শৈলী তৈরি করেছি যার কারণে আমি নীচে এই কোডটি তৈরি করেছি: (পর্দার আকারের উপর ভিত্তি করে ফন্টের আকারটি পরিবর্তন করার সময় আমি কেবল @dime কল করতে পারি)

স্টাইল.এক্সএমএল এর ভিতরে

এবং এটি আমার থিমটিতে যুক্ত করেছেন

ums.xml

তদন্তের পরে, আমি জানতে পেরেছিলাম যে এটিই আমার কারণে ত্রুটি ঘটায় এবং শৈলীটি সরানোর পরে, আমি আর ক্র্যাশ অনুভব করি না।

আমি এখানে স্ট্যাক ওভারফ্লোতে পাওয়া সমস্ত সম্ভাব্য সমাধানগুলি চেষ্টা করেছিলাম এবং প্রায় এটাকে ছেড়ে দিয়েছি, ধন্যবাদ আমার কৌতূহল নিয়ে আমি ভেবেছিলাম কেন স্টাইলটি অপসারণ না করায় সম্ভবত এটি ক্রাশের কারণ এবং তারপরে ক্রমটি সরে গেছে।


4
চিত্রগুলির সাথে লিঙ্ক করার পরিবর্তে কোডের উদাহরণগুলি সরাসরি অন্তর্ভুক্ত করুন। "সমস্যার পুনরুত্পাদন করতে অন্যদের সহায়তা করুন" বিভাগটি দেখুন: স্ট্যাকওভারফ্লো.com
ক্রিস বি

4
আমি সত্যিই এই @ ক্রিসবি এর পক্ষে আছি। আপনি দেখতে পাচ্ছেন আমার খ্যাতি খুব কম হওয়ায় এটি এখানে আমার প্রথম মন্তব্য। আমি আজ ক্র্যাশের মুখোমুখি হয়েছি এবং আমি এখানে পোস্ট করার চিন্তা করছিলাম কারণ সম্ভবত এমন লোকেরাও আছেন যাঁরা এর মুখোমুখি হচ্ছেন তারা বিশেষত 'androidx.recyclerview: পুনর্ব্যবহারযোগ্যতা: 1.1.0-বিটা05' ব্যবহার করছেন।
জেনি ভি

0

যেহেতু লিনিয়ারলআউটম্যানেজারটি ডিফল্টরূপে উল্লম্ব তাই এটি করার একটি সহজ উপায় হ'ল:

recyclerView.setLayoutManager(new LinearLayoutManager(context));

আপনি যদি ওরিয়েন্টেশনটি পরিবর্তন করতে চান তবে আপনি এই নির্মাণকারীটি ব্যবহার করতে পারেন:

public LinearLayoutManager(Context context, int orientation, boolean reverseLayout);

এখন একটি অদ্ভুত ইস্যুজনালারিআউট ম্যানেজার রয়েছে। আমি এটি তাত্ক্ষণিকভাবে দেখছি কিন্তু এখনও ত্রুটিযুক্ত এই ত্রুটি। পবিত্র গরু।
ফিলিটি_উইজার্ড

0

আমি মনে করি আপনার সমস্যা Adapter। নিশ্চিত করুন যে আপনি ফিরে করুন ViewHolderমধ্যে onCreateViewHolder()। নীচের মত:

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

0

আমার জন্য সমস্যাটি ছিল আমার কার্যকলাপ_মেইন.এক্সএমএল (21) এর সাথে যা রিসাইক্ল ভিউয়ের কোনও আইডি নেই।

কার্যকলাপ_মাইন.এক্সএমএল (21)

 <android.support.v7.widget.RecyclerView
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:layout_marginStart="8dp"
    android:layout_marginLeft="8dp"
    android:layout_marginTop="8dp"
    android:layout_marginEnd="8dp"
    android:layout_marginRight="8dp"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintHorizontal_bias="0.0"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toBottomOf="@+id/button3"
    tools:listitem="@layout/transaction_list_row" />

কার্যকলাপ_মাইন.এক্সএমএল

<android.support.v7.widget.RecyclerView

    android:id="@+id/transac_recycler_view"
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:layout_marginStart="8dp"
    android:layout_marginLeft="8dp"
    android:layout_marginTop="8dp"
    android:layout_marginEnd="8dp"
    android:layout_marginRight="8dp"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintHorizontal_bias="0.0"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toBottomOf="@+id/button3"
    />

যখন আমি অ্যান্ড্রয়েড যুক্ত করেছি তখন এটি কাজ করেছিল: id_ "@ + id / transac_recycler_view" এ কার্যকলাপ_মেইন.এক্সএমএল (21) পুনর্ব্যবহারের ভিউতে


0

আমার ক্ষেত্রে আমি কেবল বাটারনিফ লাইব্রেরি যুক্ত করেছি এবং এ্যানোটেশনপ্রসেসর যুক্ত করতে ভুলে গেছি। বিল্ড.gradle (অ্যাপ মডিউল) -এ নীচে লাইন যুক্ত করে, আমার সমস্যার সমাধান করুন।

    annotationProcessor 'com.jakewharton:butterknife-compiler:10.1.0'

0

রিসাইক্লারভিউ পুনর্বিবেচনা = সন্ধানকারী (R.id.recyclerview) আপনি এটি মিস করেছেন হতে পারে


হাই, তাই আপনাকে স্বাগতম! এটি কেন এই প্রশ্নের জন্য প্রাসঙ্গিক কিছু ব্যাখ্যা করুন। বর্তমানে এটি যেমন লেখা হয়েছে আপনি কী উল্লেখ করছেন তা বলা শক্ত।
পাইওটার কামোদা

0

জেনিমোশনে আমার অ্যাপ্লিকেশনটি পরীক্ষা করার সময় আমারও একই সমস্যা হয়েছিল। ডিভাইসটি পুনরায় চালু করার পরে জেনিমোশন সমস্যার সমাধান হয়েছিল was


0

আমি একই ইস্যুটির মুখোমুখি হয়েছি কারণ আমার অন্য লেআউটে রিসাইক্লারভিউ ছিল এবং কার্যকলাপ_মাইন.এক্সএমএলে নয়।

কিছু সাইটে অনুসন্ধান করে আমি কিছু পেয়েছি এবং এখানে ভাগ করে নেওয়ার মতো অনুভব করেছি

  1. Activity_main.xML এ ট্যাগ অন্তর্ভুক্ত করতে আইডি যুক্ত করুন

    <include id="includedRecyclerLayout" .... </include>

  2. মেইনএকটিভিটি.জভাতে আইডি দ্বারা ভিউ অনুসন্ধান করার আগে এই লেআউটটিকে কল করুন

    `কনস্ট্রেন্টলয়েআউট অন্তর্ভুক্ত লেআউট = সন্ধান ভিউআইআইডি (আর .আইড.ইন.ইনকিউডেড রেসাইক্লারলআউট);

    পুনর্ব্যবহারযোগ্য ভিউরিসাইক্লারভিউ = অন্তর্ভুক্তলআউট.ফাইন্ডভিউবিআইআইডি (আর.আইডি.আরসিওয়াইসিএল_ভিউ_আইডি) `;


0

বাটারকনিফ ব্যবহার করার সময় আমার এই সমস্যা হয়েছিল, আমি টুকরোটি ব্যবহার করছিলাম

খণ্ডের জন্য, এটি হওয়া উচিত ButterKnife.bind(this,view);

ক্রিয়াকলাপের জন্য ButterKnife.bind(this);


-1

আমি যেখানে আপনি যদি আমি এই কাজ করব। অনভিউ (উইথআইড (অ্যান্ড্রয়েড.আর.আইডি.লিস্ট)) সম্পাদন করুন (রিসাইক্লারভিউঅ্যাকশনস.স্রোকলটোপেজেশন (3)); android.R.id.list এটিকে আপনার তালিকা আইডিতে পরিবর্তন করুন এবং অবস্থানটি আপনার অ্যারের ভিতরে অবস্থান করবে।


-1

টুকরা ব্যবহার

অনক্রিট ভিউতে লিখিত কোড ()

রিসাইক্লারভিউ রিসিভিডিও = ভিউ.ফাইন্ডভিউবিআইআইডি (আর.আইডি.রেসিভিডিও ফাগ);

ক্রিয়াকলাপ ব্যবহার করে

অনক্রিটে লিখিত কোড () রিসাইক্লারভিউ রিসিভিডিও = সন্ধান ভিউবাইআইডি (R.id.recyVideoFag);

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.