গ্রহণের ত্রুটি: অপ্রত্যক্ষভাবে প্রয়োজনীয় .class ফাইলগুলি থেকে রেফারেন্স করা হয়?


185

আমি গ্রহনে একটি ত্রুটি পেয়েছি। এই ত্রুটি বার্তার অর্থ কী:

Iglu.ir.TerVector টাইপটি সমাধান করা যায় না। এটি অপ্রত্যক্ষভাবে প্রয়োজনীয়। ক্লাস ফাইলগুলি থেকে রেফারেন্স করা হয়


21
আপনার প্রকল্পের উত্স পথে iglu.ir.TermVector যুক্ত জার যুক্ত করুন।
হ্যারি জয়

2
আপনি যদি নিশ্চিত হন যে ক্লাসটি সরবরাহ করা হয়েছে তবে আপনার সমস্ত প্রকল্পের জন্য একটি পরিষ্কার এবং রিফ্রেশ চেষ্টা করুন
মিরকো


ঠিক! এই জারের pom.xML নির্ভরতা উপস্থিত থাকা প্রয়োজন।
গৌরব

উত্তর:


191

এর অর্থ হল: "আপনি যে ক্লাসটি ব্যবহার করেন তার অন্য শ্রেণীর প্রয়োজন যা ক্লাসপাথে নেই" " ক্লাসপথে প্রয়োজনীয় জার যোগ করার জন্য আপনার নিশ্চিত হওয়া উচিত (হ্যারি জয়ের পরামর্শ অনুসারে)।


3
সর্বজনীন এবং সহজ উত্তর যা আমাকে বিভিন্ন ক্ষেত্রে অনেকটা সহায়তা করে :) THX
Mariusz Chw

আপনি বিশেষত ক্লাসগুলি সরিয়ে দেওয়ার চেষ্টা করছেন, অনুপস্থিত প্রকারের জন্য রেফারেন্সের জন্য প্যারেন্ট ক্লাস চেক করুন। এই বার্তাটির অর্থ যদি সর্বদা এটি না হয় তবে এটি বেশিরভাগ সময় বোঝায় means
butallmj

হ্যাঁ আমি দেখতে পেয়েছি যে এটি রেফারেন্সড জারে কিছু হারিয়ে যাওয়া জারগুলির কারণে হয়েছিল :) ধন্যবাদ Thanks
আলী ইমরান

21
@ আরন, কেন এটি পরোক্ষভাবে উল্লেখ করা হয় তখন? বলা উচিত নয় যে, এটা করা হয় না এ সব রেফারেন্সড?
পেসারিয়ার

2
@ পেসমিয়ার যা সত্য হবে না। এটি আপনার কোড নয় যা সরাসরি এই ধরণের উল্লেখ করে, বরং এটি আপনার কোড ব্যবহার করে এমন কিছু, সুতরাং আপনার কোড থেকে সেই ধরণের নির্ভরতা "কেবল" ট্রানজিটিভ, তবে এটি রয়েছে। "অপ্রত্যক্ষভাবে" আপনাকে কোথায় দেখতে হবে তা জানায়।
hiergiltdiestfu

21

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


এটাও জারে নেই। এটি এমন একটি প্রকল্পের মধ্যে রয়েছে যা অন্তর্ভুক্ত সমস্ত প্রকল্পগুলিতে অন্তর্ভুক্ত যেখানে এটি কোনও প্রাসঙ্গিকতা।
জেরি মিলার

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

এটি কখনও কখনও ঘটতে পারে তবে আমি ত্রুটিগুলিতে চলে এসেছি যা একই প্রতিক্রিয়া দেয় এবং প্রকল্পটি তৈরি করতে পারে না।
ক্রিস্টোফার কনারি

13

আমার সাথে এটি কখনও কখনও ঘটে থাকে, আমি সর্বদা পুরানো বৈশিষ্ট্য পরিষ্কার করার জন্য "এমভিএন ইক্লিপস: ক্লিন" কমান্ড দিয়ে স্থির করেছিলাম এবং এমভিএন গ্রহনটি চালনা করি: গ্রহনটি -ডব্লিটপার্শন = ২.০ (অবশ্যই ওয়েব প্রকল্পের জন্য)। কিছু পুরানো বৈশিষ্ট্য সংরক্ষণ করা হয়েছে তাই গ্রহন কখনও কখনও বিভ্রান্ত হয়।


আমি প্রকল্পটি পরিষ্কার করেছি (প্রজেক্ট-> ক্লিন ...) থেকে এবং এটি কার্যকর হয়েছে।
আনু শিবিন জোসেফ রাজ

mvn eclipse:cleanএবং / অথবা এমভিএন eclipse:eclipseএটিকে কাজ করার জন্য যাদু কৌশল বলে মনে হচ্ছে।
এন্টোইন মার্টিন

13

দূষিত স্থানীয় মাভেন সংগ্রহস্থলের কারণে আমার এই ত্রুটি হয়েছিল ।

সুতরাং, সমস্যাটি সমাধান করার জন্য, আমাকে যা করতে হয়েছিল তা হ'ল আমার সংগ্রহশালায় গিয়ে ফোল্ডারটি মুছে ফেলা হয়েছিল যেখানে সম্পর্কিত .jar ছিল, তারপরেই একটি জোরপূর্বক একটিগ্রহে update mavenবসানো উচিত।


1
এটি আমার পক্ষে কাজ করেছিল, যদিও উপরের সমস্ত কিছুই তা করেনি। সমস্যাটি দেখা দিয়েছে যখন আমার দলের এক সঙ্গী পোম থেকে সংগ্রহস্থলের সংস্করণ আপডেট করেছিলেন।
আইআইএল

8

মনে হচ্ছে এটি একটি পরিচিত সমস্যা (বাগ 67414) হয়ে গেছে যা 3.0 এ সমাধান করা হয়েছিল ... কেউ মন্তব্য করেছেন যে এটি তাদের জন্য 3.4-তেও ঘটছে।

মাঝামাঝি সময়ে, কাজটি হচ্ছে প্রকল্প থেকে জেআরই সিস্টেম লাইব্রেরিটি সরিয়ে আবার এটি আবার যুক্ত করা।

Here are the steps:

বিল্ড ত্রুটি সহ প্রকল্পের বৈশিষ্ট্যগুলিতে যান (ডান ক্লিক করুন> বৈশিষ্ট্য)

"নির্মাণের পথ" বিভাগে "গ্রন্থাগারগুলি" ট্যাবটি দেখুন

তালিকায় "জেআরই সিস্টেম লাইব্রেরি" সন্ধান করুন (এটি যদি অনুপস্থিত থাকে তবে এই ত্রুটি বার্তাটি একটি গ্রিপ বাগ নয়, তবে একটি ভুল কনফিগার করা প্রকল্প)

"জেআরই সিস্টেম লাইব্রেরি" সরান

"লাইব্রেরি যুক্ত করুন ..." চাপুন, "জেআরই সিস্টেম লাইব্রেরি" নির্বাচন করুন এবং প্রকল্পের জন্য উপযুক্ত জেআরই যুক্ত করুন (উদাঃ 'ওয়ার্কস্পেসের ডিফল্ট জেআরই')

লাইব্রেরি নির্বাচনের "সমাপ্তি" এবং প্রকল্পের বৈশিষ্ট্যগুলিতে "ঠিক আছে" টিপুন এবং তারপরে প্রকল্পটির পুনর্নির্মাণের জন্য অপেক্ষা করুন

আশা করি ত্রুটিটি সমাধান হয়ে যাবে ...


হ্যাঁ.আমি বসন্ত-ওয়েব -৩.০.১.২০১RE এর সাথে একই সমস্যা ছিল RE তবে এটি পোম.এক্সএমএল এর নির্ভরতা হিসাবে নিবন্ধিত ছিল এবং ইতিমধ্যে কিছু রেফারেন্সে নির্ভরতা হিসাবে কাজ করছিলাম যখন আমি একটি http.csrf () তৈরি করেছিলাম। অক্ষম ()। কর্স ()। নিষ্ক্রিয় ()। httpBasic ()। এবং ()। অনুমোদনপ্রাপ্তি () .অ্যান্ট ম্যাথার্স (পাবলিক_ম্যাচার্স) .প্রিমিটএল ()। যে কোনওরূপে () সত্যায়িত (); এটি ভেঙে গেছে hen তারপরে আমি জার ফাইলটি ডাউনলোড করে এটিকে traditionalতিহ্যগত ম্যানুয়াল পদ্ধতিতে আমদানি করব।
সাকিরোগ্লো ফোটিস

5

জার ফাইলের ক্লাসগুলি যখন জারের ফোল্ডারের কাঠামোর মতো কাঠামো অনুসরণ করে না তখন এই ত্রুটি ঘটে থাকে ..

উদাহরণস্বরূপ, যদি আপনার ক্লাস ফাইলের প্যাকেজ com.test.exam থাকে এবং ক্লাস.জার এই ক্লাস ফাইলটি থেকে তৈরি করা হয় কাঠামোর টেস্ট.এক্সাম ... ত্রুটি নিক্ষেপ করা হবে। আপনার ক্লাস.জারের প্যাকেজ কাঠামোটি সংশোধন করতে হবে এবং তারপরে একে এক্সপ্লিপ বিল্ড পাথে অন্তর্ভুক্ত করুন ...



3

অ্যালিপিস ৪.৪.২ নিয়ে আমার এই সমস্যাটির একটি আকর্ষণীয় ঘটনা ছিল। আমার প্রকল্প (পি 1) একটি বহিরাগত শ্রেণি (প্রজেক্ট পি 2) একই নামের সাথে দুটি পদ্ধতির সাথে বিভিন্ন যুক্তির ধরণের উল্লেখ করেছে:

public static void setItem(Integer id) …
public static void setItem(Item item) …

প্রকারটি Itemতৃতীয় প্রকল্প পি 3-তে অন্তর্ভুক্ত ছিল, যা আমি এখানে দৃশ্যমান হতে চাই না। পি 1 কেবল প্রথম পদ্ধতি বলে:

ExternalClass.setItem(Integer.valueOf(12345));

সুতরাং দ্বিতীয় পদ্ধতিটি, যা Itemক্লাস ব্যবহার করেছিল , ব্যবহৃত হয়নি, এবং এটি সত্য যে পি 3 সংকলন শ্রেণিপথে ছিল না - কেন এটি ব্যবহার না করা উচিত।

তবুও গ্রহ আমাকে বলেছিল

The type ...Item cannot be resolved.
It is indirectly referenced from required .class files

কমান্ড লাইন থেকে সংকলন করে এ জাতীয় সমস্যা তৈরি হয়নি। দ্বিতীয় পদ্ধতির নাম পরিবর্তন করা (এখানে অব্যবহৃত!) সমস্যাটিও Eclipse এ চলে গেছে।


2
আমি এক্লিপস ফোটন রিলিজ (4.8.0)
ডেলফিন


2

আপনি যদি এখনও আপনার সেটআপটিতে কোনও ভুল খুঁজে না পান তবে আপনি প্রকল্পটি চেষ্টা করতে পারেন -> কর্মক্ষেত্রের সমস্ত প্রকল্প সাফ করুন clean

সম্পাদনা: দুঃখিত, verbose_mode এর পরামর্শটি দেখতে পেল না ... একই জিনিস


2

আমার জন্য, যখন আমি আমার জেডিকে 1.8.0_60 এ আপগ্রেড করি তখন আমার পুরানো সেট জারগুলি দীর্ঘদিন ধরে ব্যবহৃত হয়। আমি যদি jdk1.7.0_25 এ ফিরে যাই তবে এই সমস্ত সমস্যা চলে গেছে। এটি জেআরই এবং গ্রন্থাগারগুলির মধ্যে সামঞ্জস্যতা সম্পর্কে সমস্যা বলে মনে হচ্ছে।


1

আমি যখন কিছু কিছু এসএনএন সেটিংস পরিবর্তন করেছি তখন কোডটিতে কিছু না হলেও ত্রুটি পেয়েছি। প্রকল্পগুলি সাফ করার ফলে ত্রুটি ঠিক করা হয়েছে।


1

আমার ক্ষেত্রে, আমি একটি প্রকল্প তৈরি করেছি minSdkVersion=9এবং এর এবং করেছি targetSdkVersion=17। আমি স্বয়ংক্রিয়ভাবে উত্পন্ন ব্যবহার libs/android-support-v4.jar। আমাকে ব্যবহারেরও ActionBarActivityব্যবহার করতে হয়েছিল android-support-v7-appcomapt.jar। সুতরাং আমি কেবল android-support-v7-appcompat.jarফাইলটি android-sdk/extras/andrid/support/v7/appcompat/libsফোল্ডার থেকে অনুলিপি করেছি এবং এটি আমার প্রকল্প libsফোল্ডারে আটকিয়েছি । এবং এটি উপরের ত্রুটি ঘটায়। সুতরাং মূলত, আমার android-support-v4.jarফাইলটি android-sdk/extras/andrid/support/v7/appcompat/libsআমার প্রজেক্ট libsফোল্ডারেও রাখা দরকার ছিল। আমার জ্ঞান অনুসারে v7.jarফাইলটির উপর v4.jarফাইলের নির্ভরতা ছিল । সুতরাং, এটির জন্য নিজের v4.jarপ্রকল্পের পরিবর্তে স্বয়ংক্রিয়ভাবে v4.jarফাইল তৈরি করা দরকার ।


1

দ্রুত এবং সহজভাবে আমি এটিকে এটি ঠিক করেছি (আমি ADT সংস্করণটি ব্যবহার করি: উইন্ডোজ এক্সপি হোম সংস্করণে v21.0.0-531062)

  1. ম্যানিফেস্ট ফাইলটি খোলা হয়েছে।
  2. বিদ্যমান প্রকল্পের minSdkVersionটিকে ম্যাক্সডেক ভার্শন হিসাবে একই মানতে পরিবর্তন করা হয়েছে (পরামর্শ দিন: একটি নতুন প্রকল্প তৈরি করা এবং এটি ম্যাক্সডিডিকি ভার্সন কী তা দেখতে ভালই লাগবে)
  3. ম্যানিফেস্ট ফাইল সংরক্ষণ করুন।
  4. প্রকল্পটিতে ডান ক্লিক করুন এবং বিল্ড প্রকল্প নির্বাচন করুন।
  5. শীর্ষস্থানীয় মেনু থেকে: প্রকল্প - পরিষ্কার .. - নীচে কেবল প্রাসঙ্গিক প্রকল্পটি দেখুন, নীচে আমি একটি বিল্ড তত্ক্ষণাত শুরু করে কেবলমাত্র নির্বাচিত প্রকল্পগুলি তৈরি করুন এবং ঠিক আছে তা পরীক্ষা করে দেখলাম।
  6. জাভা ফাইলটি খুলুন - আর কোনও লাল ত্রুটি নেই!
  7. উপরের 1 ধাপে ফিরে যান এবং ব্যাক minSdkVersion এর আসল মানতে পরিবর্তন করুন (যতটা সম্ভব অ্যান্ড্রয়েড সংস্করণ সাপোপার্ট করতে)।

এটি কাজ করেছিল তবে সমস্যাটি কয়েক দিন পরে ফিরে আসে। আমি উপরের মতো একই জিনিস করি এটি সমাধান করে এবং আমাকে বিকাশ করতে দেয়।


0

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


0

আপনি যেহেতু আমাদের খুব অল্প বিশদ বিবরণ দেন, সম্ভবত আপনি যা করেছিলেন তা হ'ল যা করা একটি অবিশ্বাস্যরকম সহজ ভুল, সেটিই কি শিরোনামের পরিবর্তে?

Build Path > Configure Build Path > Projects

এবং সেখান থেকে আপনার অতিরিক্ত প্রকল্প ফোল্ডার যুক্ত করে পরিবর্তে আপনি গিয়েছিলেন

Build Path > Configure Build Path > Libraries

এবং পরিবর্তে সেখান থেকে আপনার প্রকল্প ফোল্ডারটি যুক্ত করেছে।

আপনার কোডটি সমস্ত সঠিক থাকলে এটি অবশ্যই স্পষ্টভাবে ক্ষেত্রে তবে এর মাধ্যমে স্বয়ংক্রিয়ভাবে আমদানি পুনরায় সংগঠিত করার পরে ctrl+space শর্টকাটের করার পরে com.your.additionalproject উল্লেখ করে আপনার আমদানি বিবৃতিগুলির পরিবর্তে আপনার রেফারেন্স বিন ডটকম.ইউর.এডিশনাল প্রজেক্টের দিকে নির্দেশ করে।

বিন নোট করুন। এর অর্থ এই যে আপনি অপ্রত্যক্ষভাবে আপনার অন্যান্য প্রকল্পের ফোল্ডার কাঠামোটিকে একটি গ্রন্থাগার হিসাবে বিবেচনা করে আপনার ক্লাসের উল্লেখ করছেন, আপনার আইডিই আপনি যে বাইনারি ক্লাসের উল্লেখ করছেন ঠিক তা আবিষ্কার করার সমস্ত প্রকারকে করছে।

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


0

আমি যখন একটি নতুন গ্রহন সংস্করণ ব্যবহার করি এবং পূর্ববর্তী কর্মক্ষেত্রটি ব্যবহার করার চেষ্টা করি যা আমি পুরাতনগ্রহণের সংস্করণে ব্যবহার করি, তখন এই ত্রুটি ঘটেছে।

আমি কীভাবে সমস্যার সমাধান করব তা এখানে:

প্যাকেজ এক্সপ্লোরার -> সম্পত্তি -> জাভা বিল্ড পাথ -> গ্রন্থাগারগুলি -> আমার প্রকল্পটিতে ডান ক্লিক করুন আমি জেআরই সিস্টেম লাইব্রেরিতে একটি ত্রুটি (ক্রস সাইন) দেখতে পাচ্ছি। কারণ পথ খুঁজে পাওয়া যায় না। -> জেআরই সিস্টেম লাইব্রেরিতে ডাবল ক্লিক করুন -> "ওয়ার্কস্পেস ডিফল্ট জেআরই" বিকল্পটি নির্বাচন করুন -> সমাপ্ত -> ঠিক আছে। -> তবে এটি কাজ করছে

অবগতির জন্য।


0

আমার ক্ষেত্রে এটি আমার pom.xmlফাইলে নতুন নির্ভরতা যুক্ত করার ফলাফল ছিল ।

নতুন নির্ভরতা কোনও লাইব্রেরির পুরানো সংস্করণের উপর নির্ভর করে (2.5)। আমার একই গ্রন্থাগারটি অন্য একটি গ্রন্থাগারের দ্বারা প্রয়োজনীয় ছিলpom.xml , তবে এটির 3.0 সংস্করণ প্রয়োজন।

কোনও কারণে, মাভেন যখন এই দ্বন্দ্বগুলির মুখোমুখি হন তখন এটি কেবল সাম্প্রতিকতম সংস্করণটি বাদ দেয়। Eclipse এ দেখার সময় pom.xmlআপনি নির্ভরতাগুলি কীভাবে সমাধান করা হয় তা দেখতে নীচে "নির্ভরতা স্তরক্রম" ট্যাবটি নির্বাচন করতে পারেন। এখানে আপনি দেখতে পাবেন যে প্রশ্নে থাকা গ্রন্থাগারটি (এবং এভাবে শ্রেণিবদ্ধ) এই কারণে বাদ দেওয়া হয়েছে কিনা।

আমার ক্ষেত্রে এটি নতুন সংস্করণটি লক করার মতোই সহজ ছিল। আপনি এন্ট্রিটিতে ডান-ক্লিক করে এটি করতে পারেন - প্রসঙ্গ মেনুতে এটি লক করার একটি বিকল্প রয়েছে।


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