অ্যান্ড্রয়েড এক্সএমএল ত্রুটি: "সম্পর্কিত কোনও সংস্থান পাওয়া যায় নি যে" প্রদত্ত নামের সাথে মেলে "রিলেটিভলয়েট (@ আইডি / লিনিয়ারলআউট_এইচসি, @ আইডি / প্রগ্রেসবার_স্ট্যাটাসস্ক্রিন) এর সাথে


92

ঠিক আছে, সুতরাং এটি আমাকে সত্যিই বিরক্ত করতে শুরু করেছে। এই ত্রুটিটি একটি খুব বিশেষভাবে যুক্ত হয়, খুব যৌক্তিক উপায়ে নয়।

এই ত্রুটি সম্পর্কিত অন্যান্য প্রশ্নগুলি আমি ইতিমধ্যে দেখেছি বলে এই কথাটি বলার আগে আমার কাজ শুরু করা যাক, গুগলও এটি চাইবে। যতদূর আমি বলতে পারি, সর্বাধিক অনুরূপ সমস্যা দেখা দেয় কারণ লোকেরা একটি Stringউত্স বা অন্য কিছুকে একই লেআউট ফাইলের মধ্যে না বলে উল্লেখ করে , তারা '@' আইডি + 'বা' অনুরূপ 'কিছু' ভুল জায়গায় ফেলে।

আমার যে সমস্যাটি হচ্ছে তা একটি এর সাথে একটি লেআউট। XML ফাইলে ঘটে RelativeLayout। এটিতে একটি TableLayout, দুটি LinearLayoutগুলি রয়েছে যা কিছু পাঠ্য এবং অবশেষে a ProgressBar। আমি যা চাই তা হল অগ্রগতি বারটি আপেক্ষিক বিন্যাসের সাথে android:layout_alignParentBottom="true"সামঞ্জস্য করা এবং তারপরে অগ্রগতি বারের উপরে দুটি লিনিয়ার বিন্যাস প্রান্তিককরণ করা (নীচের লিনিয়ার বিন্যাসটি প্রগতি বারের উপরে প্রান্তিককরণ, নীচের লিনিয়ার বিন্যাসের উপরে অন্য প্রান্তিককরণ)।

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

"ত্রুটি: কোনও সংস্থান পাওয়া যায় নি যে প্রদত্ত নামের সাথে মিলছে ('লেআউট_আবারোভে' মান '@ আইডি / লিনিয়ারলআউট_একসি' এর সাথে)" "

এবং অন্যান্য লিনিয়ার বিন্যাসের জন্য একই ত্রুটিটি অগ্রগতি বারকে উল্লেখ করে। আমার ট্রিপলের চেয়ে বেশি পরীক্ষা করা আছে যে কোনও টাইপস নেই (প্যাকেজ নামটিতেও আইডির উপস্থিতি রয়েছে R আর জাভা) এবং আমি প্রকল্পটি কয়েক ডজন বার সাফ করার চেষ্টা করেছি।

প্রকল্পটি চালানোর সিদ্ধান্ত নেওয়ার আগ পর্যন্ত আমি (এবং অটো বিল্ডিং) সংরক্ষণ করার সময় ত্রুটিটি পাই না। আর একটি অদ্ভুত বিষয় হ'ল আমি যখন শীর্ষ লিনিয়ার বিন্যাসের পরিবর্তে অগ্রগতি বার থেকে নীচের লিনিয়ার লেআউটটি উল্লেখ করি তখন আমি কোনও ত্রুটি পাই না!

আমার লেআউট ফাইল:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="@drawable/background_activity" >
        <TableLayout
             ... />

        <LinearLayout
            android:id="@+id/LinearLayout_dist"
            android:layout_above="@id/LinearLayout_acc"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerHorizontal="true"
            android:layout_marginBottom="10dp" >

            <TextView
                ... />

            <TextView
                ... />
        </LinearLayout>

        <LinearLayout
            android:id="@+id/LinearLayout_acc"
            android:layout_above="@id/ProgressBar_statusScreen"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerHorizontal="true" >

            <TextView
                ... />

            <TextView
                ... />
        </LinearLayout>

        <ProgressBar
            android:id="@+id/ProgressBar_statusScreen"
            style="?android:attr/progressBarStyleHorizontal"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_alignParentBottom="true"
            android:layout_margin="16dp" />

</RelativeLayout>

দয়া করে সহায়তা করুন, এই ত্রুটির কারণটি আমার কী ধারণা নেই!

উত্তর সহ সম্পাদনা করুন

শ্রীকান্ত লেআউট ফাইলে উপস্থিতির ক্রম পরিবর্তন করার সমাধান নিয়ে এসেছিলেন যাতে রেফারেন্স পড়ার সময় উপাদানগুলি ইতিমধ্যে সংজ্ঞায়িত অন্যান্য উপাদানগুলিকেই উল্লেখ করে।
এছাড়াও, যেমন অন্যদের পোস্ট করেছেন পরিবর্তন @id/করতে @+id/এমনকি একটি রেফারেন্স, ত্রুটি বার্তা অপসারণ করে। মার্কো ডাব্লু। এই থ্রেডে যেমন লিখেছেন , জিনিসটি হ'ল আপনাকে @+id/প্রতিটি আইডি উল্লেখ করার সময় প্রথমবার ব্যবহার করতে হবে এবং তারপরে ব্যবহার করতে হবে @id/, যদিও প্রথমবারের মতো সংজ্ঞা নাও হতে পারে।

আমি বেশিরভাগ ডিজাইন তৈরি করেছিলাম এবং রেখাযুক্ত আইডি'র তালিকাটি গ্রহগ্রন্থের গ্রাফিকাল এডিটারে সেট করে রেখেছি, সুতরাং একটি ত্রুটি বার্তার ফলস্বরূপ কোডটি স্বয়ংক্রিয়ভাবে wasোকানো হয়েছিল। হতে পারে এটি Eclipse এ একটি বাগ।

উত্তর:


77

নীচের কোডটি চেক করুন

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@drawable/ic_launcher" >

<TableLayout
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" />

<LinearLayout
    android:id="@+id/LinearLayout_dist"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_above="@+id/LinearLayout_acc"
    android:layout_centerHorizontal="true"
    android:layout_marginBottom="10dp" >

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="FIRST" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="SECOND" />
   </LinearLayout>

   <LinearLayout
    android:id="@+id/LinearLayout_acc"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_above="@+id/ProgressBar_statusScreen"
    android:layout_centerHorizontal="true" >

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="THIRD" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="FOURTH" />
   </LinearLayout>

   <ProgressBar
    android:id="@+id/ProgressBar_statusScreen"
    style="?android:attr/progressBarStyleHorizontal"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:layout_margin="16dp" />

 </RelativeLayout>

নীচের লিঙ্কটিও দেখুন । এটি বলছে যে অ্যান্ড্রয়েড: লেআউট_বেলো = "@ আইডি / মাই টেক্সটভিউ" "মাই টেক্সটভিউ" আইডি সহ কোনও উপাদানকে চিনতে পারবে না যদি আপনি এটি ব্যবহার করছেন এমন উপাদানটির পরে লেখা হয়।


8
এই মন্তব্যের জন্য ধন্যবাদ: অ্যান্ড্রয়েড: লেআউট_বেলো = "@ আইডি / মাই টেক্সটভিউ" "মাই টেক্সটভিউ" আইডি সহ কোনও উপাদানকে চিনতে পারবে না যদি আপনি এটির উপাদানটি ব্যবহার করছেন তখন এটি লেখা হয় । এটি সমস্যার সমাধান করেছে, যদিও আমি মনে করি এটি হাস্যকর যে আপনাকে "সঠিক" ক্রমে উপাদানগুলি লিখতে হবে ... সম্ভবত একটি বাগ।
স্টেমডেসন

4
অবশ্যই এটি একটি বাগ। বিন্যাসের আইডিগুলি সংজ্ঞা আদেশের চেয়ে পৃথক হওয়া উচিত। বিশেষত বিরক্তিকর যে অ্যান্ড্রয়েড স্টুডিওতে অনস্ক্রিন লেআউট ডিজাইনারের এতে কোনও সমস্যা নেই।
dodgy_coder

@ স্টেমেডসন এটি কোনও বাগ নয়। পার্সারটি সহজেই ভিউ তৈরি করে এবং এটি পুনঃসংশোধন (আইডি) প্রথমবার যখন দেখার উপাদানটির সাথে মিলিত হয়। আপনি একটি অ দর্শনীয় উপাদানকে উল্লেখ করছেন। এমন একটি দৃশ্যের বিষয়ে বিবেচনা করুন যা এটিকে বি এর নীচে সংজ্ঞায়িত করে এবং পরে বি এ এর ​​নীচে নিজেকে সংজ্ঞায়িত করবে আদেশের সীমাবদ্ধতা যৌক্তিক সমস্যার সমাধান করে
মাসউদ দাদশি

আমাকে এখানে মন্তব্য করতে দাও: আপনি যে ইউআই উপাদানটি নিয়ে ইউআই উপাদান নিয়ে কাজ করছেন তার পরে (এর আগে নয়) রেফারেন্স দেওয়া সম্ভব নয় make
ivanleoncz

85

পরিবর্তন

@id/LinearLayout_acc

প্রতি

@+id/LinearLayout_acc

4
বাহ, এটি আসলে কাজ করে। আমি ভেবেছিলাম @id/বিদ্যমান আইডি'র রেফারেন্স করার জন্য, @+id/নতুন আইডি তৈরি করার জন্য এবং এগুলিকে আন্তঃআরঞ্জক করা যায় না । কিভাবে এই পদ্ধতির আইনী হয়? আমি তখন দু'বার আইডি সংজ্ঞায়িত করব?
স্টেমডেসন

আসলে, এটি আইডির জন্য একটি দীর্ঘ মান, @ + আইডি / কিছু দীর্ঘ মান বোঝায়। এবং যদি আমরা কোনও উপাদানকে কিছু আইডি মান অর্পণ করি, তবে আমরা কেবলমাত্র এই আইডিটিকে ভিউগুলি উল্লেখ করতে ব্যবহার করতে পারি।
জিট

এটি আশ্চর্যজনক বলে মনে হচ্ছে, কারণ অন্যান্য সমস্ত বিন্যাসে আমি অন্যান্য আইডি'র @ আইডি / এবং @ + আইডি / দিয়ে উল্লেখ করি না। এছাড়াও, শ্রীকান্ত যেমন নীচে উল্লেখ করেছেন, আমি যদি রেফারেন্সযুক্ত উপাদানগুলির ক্রম পরিবর্তন করি তবে এটি @ আইডি / দিয়ে কাজ করে।
স্টেমডেসন

4
উপাদানগুলি যেভাবে স্ক্রিনে প্রদর্শিত হবে সেটিকে তুলনামূলক বিন্যাসে রাখার সত্যিই দুর্দান্ত উপায়, আমি যা খুঁজছিলাম।
উল্লাস

4
জী জনাব! Man লোককে একটি পদক দিন। এটি হ'ল আপনাকে যা করতে হবে, যদি পরবর্তী সময়ে বিন্যাসে তৈরি করা এমন কোনও ভিউর রেফারেন্সের প্রয়োজন হয়।
ইওরাকো গঞ্জালেস

15

প্রত্যেক আইডি পরিবর্তন @idকরতে @+id, কোনো ব্যাপার এটি কখন সংজ্ঞা বা একটি আইডি উল্লেখ নেই। এই সঙ্গে, আপনি পাবেন না

অ্যান্ড্রয়েড এক্সএমএল ত্রুটি: "সম্পর্কিত কোনও সংস্থান পাওয়া যায় নি যে" প্রদত্ত নামের সাথে মেলে "রিলেটিভলআউট (@ আইডি / লিনিয়ারলআউট_একসি, @ আইডি / প্রগ্রেসবার_স্ট্যাটাসস্ক্রিন) এর সাথে।


2
 <LinearLayout
        android:id="@+id/LinearLayout_dist"
        android:layout_above="@+id/LinearLayout_acc" <--- here might be a problem you forgot + sign
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_marginBottom="10dp" >
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.