java.lang. NullPointerException: আইডি সহ প্রয়োজনীয় ভিউ মিস করা:


11

অ্যান্ড্রয়েড স্টুডিও ৩.6

অ্যাপ্লিকেশন / বিল্ড.gradle এ:

android {
viewBinding.enabled = true

এখানে আমার এক্সএমএল:

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <androidx.constraintlayout.widget.ConstraintLayout
        android:id="@+id/bluetoothBottonMainContainer"
        android:layout_width="0dp"
        android:layout_height="104dp"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent">

        <View
            android:id="@+id/viewPointNotSelect"
            android:layout_width="16dp"
            android:layout_height="16dp"
            android:background="@drawable/circle_transparent"
            app:layout_constraintBottom_toBottomOf="@+id/separator"
            app:layout_constraintEnd_toStartOf="@+id/separator"
app:layout_constraintTop_toTopOf="parent" />

এবং অন্য একটি এক্সএমএল আনলক্ট প্রড। XML:

 <androidx.constraintlayout.widget.ConstraintLayout
        android:id="@+id/bottonContainer"
        android:layout_width="0dp"
        android:layout_height="104dp"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent">

        <include
            android:id="@+id/qrBottonContainer"
            layout="@layout/qr_bottom_container"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintStart_toStartOf="parent" />

এখানে আমার ক্রিয়াকলাপ:

override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        binding = QrBluetoothSwipeActivityBinding.inflate(layoutInflater)
        setContentView(binding.root)
}

অ্যাপ্লিকেশনটি বিল্ড এবং রান হয়। খুশী হলাম।

এখন আমি আইডি সরান - android:id="@+id/bluetoothBottonMainContainer"

এই মত বাইরের পাত্রে:

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/bluetoothBottonMainContainer"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <androidx.constraintlayout.widget.ConstraintLayout
        android:layout_width="0dp"
        android:layout_height="104dp"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent">

        <View
            android:id="@+id/viewPointNotSelect"
            android:layout_width="16dp"
            android:layout_height="16dp"
            android:background="@drawable/circle_transparent"
            app:layout_constraintBottom_toBottomOf="@+id/separator"
            app:layout_constraintEnd_toStartOf="@+id/separator"
            app:layout_constraintTop_toTopOf="parent" />

অ্যাপ্লিকেশনটি বিল্ট, তবে রান করার সময় আমি এই লাইনে রানটাইম ত্রুটি পাই:

binding = QrBluetoothSwipeActivityBinding.inflate(layoutInflater)

ত্রুটি:

10-25 11:11:51.290 E/AndroidRuntime(14128): FATAL EXCEPTION: main
10-25 11:11:51.290 E/AndroidRuntime(14128): Process: com.myproject.debug, PID: 14128
10-25 11:11:51.290 E/AndroidRuntime(14128): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.myproject.debug/com.myproject.ui.actviity.QRBluetoothSwipeActivity}: java.lang.NullPointerException: Missing required view with ID: bluetoothBottonMainContainer
10-25 11:11:51.290 E/AndroidRuntime(14128):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2416)
10-25 11:11:51.290 E/AndroidRuntime(14128):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476)
10-25 11:11:51.290 E/AndroidRuntime(14128):     at android.app.ActivityThread.-wrap11(ActivityThread.java)
10-25 11:11:51.290 E/AndroidRuntime(14128):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344)
10-25 11:11:51.290 E/AndroidRuntime(14128):     at android.os.Handler.dispatchMessage(Handler.java:102)
10-25 11:11:51.290 E/AndroidRuntime(14128):     at android.os.Looper.loop(Looper.java:148)
10-25 11:11:51.290 E/AndroidRuntime(14128):     at android.app.ActivityThread.main(ActivityThread.java:5417)
10-25 11:11:51.290 E/AndroidRuntime(14128):     at java.lang.reflect.Method.invoke(Native Method)
10-25 11:11:51.290 E/AndroidRuntime(14128):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
10-25 11:11:51.290 E/AndroidRuntime(14128):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
10-25 11:11:51.290 E/AndroidRuntime(14128): Caused by: java.lang.NullPointerException: Missing required view with ID: bluetoothBottonMainContainer
10-25 11:11:51.290 E/AndroidRuntime(14128):     at com.myproject.databinding.BluetoothBottomContainerBinding.bind(BluetoothBottomContainerBinding.java:114)
10-25 11:11:51.290 E/AndroidRuntime(14128):     at com.myproject.databinding.QrBluetoothSwipeActivityBinding.bind(QrBluetoothSwipeActivityBinding.java:76)
10-25 11:11:51.290 E/AndroidRuntime(14128):     at com.myproject.databinding.QrBluetoothSwipeActivityBinding.inflate(QrBluetoothSwipeActivityBinding.java:62)
10-25 11:11:51.290 E/AndroidRuntime(14128):     at com.myproject.databinding.QrBluetoothSwipeActivityBinding.inflate(QrBluetoothSwipeActivityBinding.java:52)
10-25 11:11:51.290 E/AndroidRuntime(14128):     at com.myproject.ui.actviity.QRBluetoothSwipeActivity.onCreate(QRBluetoothSwipeActivity.kt:31)
10-25 11:11:51.290 E/AndroidRuntime(14128):     at android.app.Activity.performCreate(Activity.java:6251)
10-25 11:11:51.290 E/AndroidRuntime(14128):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1107)
10-25 11:11:51.290 E/AndroidRuntime(14128):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2369)
10-25 11:11:51.290 E/AndroidRuntime(14128):     ... 9 more
10-25 11:11:51.291 W/ActivityManager(  780):   Force finishing activity com.myproject.debug/com.myproject.ui.actviity.QRBluetoothSwipeActivity
10-25 11:11:51.307 I/Icing   (11529): Indexing done com.google.android.gms-apps

3
এনপিই তৈরি করা ভিউটির আইডিটির নতুন নামকরণ আমার জন্য কাজ করেছিল। ড্রয়ারলআউট থেকে ড্রয়ারলআউট_মাইনে চলে গেছে এবং এটি আমার সমস্যার সমাধান করেছে।
11m0

উত্তর:


9

আমি এই সমস্যার মুখোমুখি হয়েছি তবে আমার ক্ষেত্রে সমস্যাটি includeপতাকা। আমি যে কার্যকারিতাটি পেয়েছি তা হল ভিউ আইডিটিকে অন্তর্ভুক্ত লেআউটের মূল দৃশ্যের আইডি হিসাবে একই করা।

activity_layout.xml

<LinearLayout>
    <include android:id="@+id/widget1" layout="@layout/my_widget" />
</LinearLayout>

my_wideget.xml

<LinearLayout
    android:id="@+id/widget1">
</LinearLayout>

এটি কাজ করেছে এবং এটাই খুব খারাপ।
Wryday

বিশ্বাস করা যায় না এটি আসলে কাজ করেছিল।
নেপালি উন্নয়নকারী

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

বিশ্বাস করতে পারি না একই নামটি সেট করা আসলে আমার পক্ষে কাজ করে।
জেনিশ

8

হালনাগাদ

এটি সর্বশেষতম বিটা, অ্যান্ড্রয়েড স্টুডিওর কার্নারি সংস্করণগুলিতে স্থির করা উচিত

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


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


4
স্থিতি স্থির? অবশ্যই না. আমি এখনও এই সমস্যা আছে।
প্যারাডোসি

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

2
আমি 12/2/2020 থেকে অ্যান্ড্রয়েড স্টুডিও 3.6 ব্যবহার করছি এবং এখনও আমার কিছু কার্যক্রমের জন্য সমস্যাটি সরে যায় না। আমার একটি লিনিয়ারলআউট রয়েছে, যার ট্যাবলআউট, ভিউপ্যাজার ইত্যাদি রয়েছে এর সন্তানের মতো। আমার ট্যাবলআউটটিতে নিজেই 3 টি ট্যাব আইটেম রয়েছে। আমি ট্যাব আইটেমগুলির জন্য আইডি সহ প্রয়োজনীয় ভিউ মিস করছি। আমি যখন তাদের আইডি সরিয়ে ফেলি তখন এই ত্রুটিটি চলে যায়। আমি @ আইডি / ট্যাবাইটেম ইত্যাদির মতো সাধারণ আইডির ব্যবহার করছি This এই ক্রিয়াকলাপটিতে নেভিগেশন সহ একটি ড্রয়ারলআউটও রয়েছে। ভিউবাইন্ডিং ব্যবহার করে, এটি টগল অদৃশ্য হয়ে যায় যদিও আমি .setDisplayHomeAsUpEn सक्षम (সত্য) কল করি।
প্যারাডোक्सी

1
@ প্যারাডক্সি আমিও এই সমস্যার মুখোমুখি হয়েছি, এটি ইতিমধ্যে জানা গেছে যা স্থির নয়।
ব্যবহারকারী 158

1
ত্রুটি এখনও আমার ঘটেছে যখন ব্যবহার <merge>পরিবর্তনশীল যোগ দৃশ্য, জন্য বিন্যাস যেমন: parent_layout.xml-> addView জন্য parent_layout.xmlব্যবহার সন্তান MyMergeLayoutBinding.inflate(inflater, viewGroup, false)-> my_merge_layout.xmlব্যবহার করছে <merge>পিতা বা মাতা ট্যাগ রূপে
mochadwi

1

আমি একই বাগের সাথে দেখা করেছি this এই বাগটি এড়াতে আপনি "বাইরের ধারক" এ একটি মোড়কের ভিউ যুক্ত করতে পারেন।

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout 
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
    <androidx.constraintlayout.widget.ConstraintLayout
        android:id="@+id/bluetoothBottonMainContainer"
        android:layout_width="match_parent"
        android:layout_height="match_parent">

    <androidx.constraintlayout.widget.ConstraintLayout
        android:layout_width="0dp"
        android:layout_height="104dp"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent">

        <View
            android:id="@+id/viewPointNotSelect"
            android:layout_width="16dp"
            android:layout_height="16dp"
            android:background="@drawable/circle_transparent"
            app:layout_constraintBottom_toBottomOf="@+id/separator"
            app:layout_constraintEnd_toStartOf="@+id/separator"
            app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>


এটি দেখতে
একরকম


0

আমার ক্ষেত্রে, আমি অন্তর্ভুক্ত লেআউটটির ভিতরে আইডিটি সরিয়েছি এবং এটি সঠিকভাবে কাজ করে!

main.xml

    <RelativeLayout>   
    ....
    <include
        include="@layout/included_layout"   
        android:id="@+id/view_included_layout"/>
    </RelativeLayout>

included_layout.xml

`   <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:id="@+id/top_level_layout">  <!-- Remove this id -->    
        ....
    </LinearLayout>
`

আমার অ্যান্ড্রয়েড স্টুডিও সংস্করণটি 3.6.2 এবং বিল্ড.gradle এর সংস্করণ 3.6.1

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