অ্যান্ড্রয়েড প্রকল্পে আমি কীভাবে বাহ্যিক জারগুলি ব্যবহার করতে পারি?


326

আমি একটি অ্যান্ড্রয়েড প্রকল্প তৈরি করেছি এবং আমার প্রকল্পে একটি বাহ্যিক জেআর (হেসিয়ান -০.০.১.জার) যুক্ত করেছি। এরপরে আমি জেআরটি বিল্ড পাথে যুক্ত করেছি এবং এটি অর্ডার এবং রফতানিতে পরীক্ষা করেছি।

অর্ডার এবং রফতানিটি এড়ানো হবে বলে মনে হচ্ছে এবং বাহ্যিক জেআর থেকে সমস্ত ক্লাস রানটাইমটিতে অনুপস্থিত।

Eclipse প্লাগইন ব্যবহার করে অ্যান্ড্রয়েড অ্যাপ্লিকেশন তৈরি করার সময় কোনও বাহ্যিক জেআর থেকে প্রয়োজনীয় বর্গগুলি যথাযথভাবে অন্তর্ভুক্ত করার কৌশল আছে? আমি পিপড়া বা মাভেন ব্যবহার করতে চাই না।


1
যেমনটি আপনি ইতিমধ্যে খুঁজে পেয়েছেন: এটি হেসিয়ান -৪.০.১.২০ এর নির্ভরতার কারণে ঘটে। আপনি যদি অ্যান্ড্রয়েডের সাথে হেসিয়ান ব্যবহার করতে চান তবে হেসড্রয়েড ( কোড . google.com/p/hessdroid ) ব্যবহার করুন । খুব সক্রিয় নয়, তবে অ্যান্ড্রয়েড on.০ এও আমার পক্ষে ভাল কাজ করে।
আইস09

উত্তর:


443

গ্রহণের জন্য

আপনার অ্যান্ড্রয়েড প্রকল্পে বা যে কোনও জাভা প্রকল্পে বাহ্যিক জেআর যুক্ত করার একটি ভাল উপায় হ'ল:

  1. libsআপনার প্রকল্পের মূল ফোল্ডারে একটি ফোল্ডার তৈরি করুন
  2. আপনার জার ফাইলগুলি ফোল্ডারে অনুলিপি করুনlibs
  3. এখন জার ফাইলটিতে ডান ক্লিক করুন এবং তারপরে বিল্ড পাথ> অ্যাড টু বিল্ড পাথ নির্বাচন করুন , যা আপনার প্রকল্পের মধ্যে 'রেফারেন্সড লাইব্রেরি' নামে একটি ফোল্ডার তৈরি করবে

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

অ্যান্ড্রয়েড স্টুডিওর জন্য

  1. আপনি যদি প্রকল্প এক্সপ্লোরারটিতে অ্যান্ড্রয়েড ভিউতে থাকেন তবে নীচের মত করে প্রকল্পের ভিউতে এটি পরিবর্তন করুন

অনুপস্থিত চিত্র

  1. আপনি বাহ্যিক লাইব্রেরি যুক্ত করতে চান এমন কাঙ্ক্ষিত মডিউলটিতে ডান ক্লিক করুন, তারপরে নতুন> ডিরেক্টরি নির্বাচন করুন এবং এটিকে ' libs ' হিসাবে নাম দিন
  2. এখন ' libs ' ফোল্ডারে blah_blah.jar অনুলিপি করুন
  3. Blah_blah.jar টি ডান ক্লিক করুন, তারপরে ' লাইব্রেরি হিসাবে যুক্ত করুন .. ' নির্বাচন করুন । এই স্বয়ংক্রিয়ভাবে যোগ হবে এবং এন্ট্রি build.gradle যেমন কম্পাইল ফাইল ( 'লিব / blah_blah.jar') এবং gradle সিঙ্ক করুন। এবং আপনি সম্পন্ন হয়েছে

দয়া করে মনে রাখবেন: আপনি 3rd পার্টি লাইব্রেরি ব্যবহার করা হয়, তাহলে এটি ব্যবহার করাই ভালো সকর্মক নির্ভরতা যেখানে Gradle স্ক্রিপ্ট স্বয়ংক্রিয়ভাবে জার এবং নির্ভরতা JAR- র যখন gradle স্ক্রিপ্টটি রান ডাউনলোড করে।

উদাহরণস্বরূপ: 'com.google.android.gms: প্লে-পরিষেবা-বিজ্ঞাপনগুলি: 9.4.0' সংকলন করুন

গ্রেডল ডিপেন্ডেন্সি ম্যানেজমেন্ট সম্পর্কে আরও পড়ুন


49
নোট করুন যে সাম্প্রতিক Eclipse / ADT সংস্করণ ব্যবহার করার সময় বাহ্যিক libslib
জারগুলি

4
@ ধন্যবাদ - ধন্যবাদ! আপনি সঠিক, ফোল্ডারের নাম অবশ্যই "libs" রাখা উচিত এবং "lib" নয়। আমি এই সমস্যাটি নিয়ে মাথা ঘুরাচ্ছিলাম।
ক্যামিল স্যাভিগনি

7
এসডিকে সাম্প্রতিক সংস্করণগুলিতে, পদক্ষেপ 3 (বিল্ড পাথটিতে জ্যানার ম্যানুয়ালি যোগ করা) অপ্রয়োজনীয়। তবে আপনার যদি আইডিই থাকে, যেমন আপনার ফাইলটি ফেলে দেওয়ার সময় অ্যালিপিসের মতো খোলে, আপনাকে একটি প্রকল্প রিফ্রেশ করতে হবে (প্যাকেজ এক্সপ্লোরার এফ 5 এবং / অথবা প্রসঙ্গ মেনু রিফ্রেশ)।
জন অ্যাডামস

4
কমান্ড লাইন থেকে এটি কীভাবে করা হয়? আমার কোন কনফিগারেশন ফাইলটি সম্পাদনা করতে হবে এবং কীভাবে?
ক্রিস্টিয়ান স্প্যান্সেজে

13
এই পদ্ধতির কারণ তাঁর পূর্ববর্তী 2012 শুধু থেকে JAR- র যোগ তারিখ সীমার বাইরে হয়েছে libs/। ম্যানুয়ালি বিল্ড পাথটি সংশোধন করবেন না।
কমন্সওয়েয়ার

127

হ্যাঁ, আপনি এটি ব্যবহার করতে পারেন। এটি এখানে:

  1. আপনার প্রকল্প -> রাইট ক্লিক করুন -> আমদানি -> ফাইল সিস্টেম -> yourjar.jar
  2. আপনার প্রকল্প -> ডান ক্লিক করুন -> সম্পত্তি -> জাভা বিল্ড পাথ -> গ্রন্থাগারসমূহ -> জার যোগ করুন -> yourjar.jar

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


5
এই পদ্ধতির 2012 সালের শুরু থেকে পুরানো হয়েছে Just জারকে libs / এ যুক্ত করুন। ম্যানুয়ালি বিল্ড পাথটি সংশোধন করবেন না।
কমন্সওয়েয়ার

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

প্রথম সমাধানটি পুরানো এবং স্বাদ হিসাবে কাজ করবে না work
ইউশা আলেয়ুব

5

আমি বর্তমানে এসডিকে 20.0.3 ব্যবহার করছি এবং পূর্ববর্তী কোনও সমাধান আমার পক্ষে কাজ করে নি।

হেসড্রয়েড যেখানে হেস ব্যর্থ হয়েছিল সেখানে কাজ করার কারণ হ'ল দুটি জার ফাইলগুলিতে বিভিন্ন ভার্চুয়াল মেশিনের জন্য সংকলিত জাভা রয়েছে। জাভা সংকলক দ্বারা নির্মিত বাইট কোডটি ডালভিক ভার্চুয়াল মেশিনে চালানোর গ্যারান্টিযুক্ত নয়। অ্যান্ড্রয়েড সংকলক তৈরি করা বাইট কোড জাভা ভার্চুয়াল মেশিনে চালানোর গ্যারান্টিযুক্ত নয়।

আমার ক্ষেত্রে আমার উত্স কোডটিতে অ্যাক্সেস ছিল এবং আমি এখানে বর্ণিত পদ্ধতিটি ব্যবহার করে এর জন্য একটি অ্যান্ড্রয়েড জার ফাইল তৈরি করতে সক্ষম হয়েছি: https://stackoverflow.com/a/13144382/545064


5

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

  1. jarLibs ডিরেক্টরিতে ফাইল যুক্ত করুন (যেমন অনুলিপি / পেস্ট)
  2. jarফাইলটিতে ডান-ক্লিক করুন এবং "গ্রন্থাগার হিসাবে যুক্ত করুন ..." নির্বাচন করুন
  3. পরবর্তী সংলাপে "ওকে" ক্লিক করুন বা আপনি যদি চান তবে নাম পরিবর্তন করুন।

এটাই!


4

দেখা যাচ্ছে আমি আমার স্ট্যাক ট্রেসগুলিতে যথেষ্ট ভাল দেখিনি, সমস্যাটি বাহ্যিক জেআর অন্তর্ভুক্ত নয়।

সমস্যাটি হ'ল অ্যান্ড্রয়েড প্ল্যাটফর্মটিতে জাভ্যাক্স.নামিং অনুপস্থিত * * এবং অন্যান্য অনেকগুলি প্যাকেজ যা বহিরাগত জেআর এরও নির্ভরতা রয়েছে।

বাহ্যিক জেআর ফাইল যুক্ত করা এবং অ্যাক্রয়েডে অর্ডার ও এক্সপোর্ট সেট করা অ্যান্ড্রয়েড প্রকল্পগুলির সাথে প্রত্যাশার মতো কাজ করে।


3

গোটো বর্তমান প্রকল্প

রাইটক্লিক-> বৈশিষ্ট্য-> জাভা বিল্ড পাথ-> লাইব্রেরিতে জার ফাইল যুক্ত করুন -> ওকে ক্লিক করুন

তারপরে এটি আপনার বর্তমান প্রকল্পের রেফারেন্সড লাইব্রেরি ফাইলগুলিতে যুক্ত করা হবে।


1

অ্যান্ড্রয়েডের জাভা এপিআই javax.naming। * এবং আরও অনেক জাভ্যাক্স। * স্টাফ সমর্থন করে না। নির্ভরতাগুলি পৃথক জার হিসাবে অন্তর্ভুক্ত করতে হবে।


1

যদি অ্যান্ড্রয়েড স্টুডিও ব্যবহার করে থাকেন তবে নিম্নলিখিতগুলি করুন (আমি @ বিনায়ক বিএস উত্তরটি অনুলিপি করেছি এবং সংশোধন করেছি):

  1. প্রকল্পের দৃষ্টিভঙ্গিতে প্রকল্পের ভিউটি নির্বাচন করুন (প্যাকেজগুলি বা অ্যান্ড্রয়েডের পরিবর্তে)
  2. আপনার প্রকল্পের মূল ফোল্ডারে libs নামে একটি ফোল্ডার তৈরি করুন
  3. আপনার জেআর ফাইলগুলি কীবোর্ডে ফায়ার ফোল্ডারে
  4. পার্শ্বদর্শন আপডেট করা হবে এবং জেআর ফাইলগুলি আপনার প্রকল্পে প্রদর্শিত হবে
  5. আপনি আমদানি করতে চান এমন প্রতিটি JAR ফাইলটিতে ডান ক্লিক করুন এবং তারপরে "লাইব্রেরি হিসাবে যুক্ত করুন ..." নির্বাচন করুন, এটি আপনার প্রকল্পে অন্তর্ভুক্ত করবে
  6. এর পরে, আপনাকে যা করতে হবে তা হ'ল আপনার কোডের নতুন ক্লাসগুলি উল্লেখ করা। import javax.mail.*

1

গ্রেড ব্যবহার করে যদি অ্যান্ড্রয়েড স্টুডিওতে

এটি build.gradle এ যুক্ত করুন

compile fileTree(dir: 'libs', include: ['*.jar'])

এবং জার ফাইলটি libs ফোল্ডারে যুক্ত করুন


1

আপনি যদি গ্রেড বিল্ড সিস্টেম ব্যবহার করছেন তবে এই পদক্ষেপগুলি অনুসরণ করুন:

  1. করা jarনিজ নিজ ভিতরে ফাইল libsআপনার android অ্যাপ্লিকেশান এর ফোল্ডার। আপনি সাধারণত এটা পাবেন Project> app> libs। যদি libsফোল্ডারটি অনুপস্থিত থাকে তবে একটি তৈরি করুন।

  2. আপনার build.gradleফাইল এ এটি যুক্ত করুন app। (আপনার জন্য নয় Project'র build.gradle)

    dependencies {
        compile fileTree(dir: 'libs', include: '*.jar')
        // other dependencies
    }

    এটি ফোল্ডারে jarউপলব্ধ আপনার সমস্ত ফাইল অন্তর্ভুক্ত করবে libs

যদি সমস্ত jarফাইল অন্তর্ভুক্ত করতে না চান তবে আপনি স্বতন্ত্রভাবে এটি যুক্ত করতে পারেন।

compile fileTree(dir: 'libs', include: 'file.jar')


0

আপনার প্রকল্পের ভিতরে একটি ফোল্ডার (lib মত) তৈরি করুন , আপনার জারটি সেই ফোল্ডারে অনুলিপি করুন । এখন প্রকল্পে ডান ক্লিক থেকে বিল্ড পাথটি কনফিগার করতে যান , সেখানে বিল্ড পাথ নির্বাচন করুন

আপনার তৈরি করা ফোল্ডারে ব্রাউজ যুক্ত করুন এবং জারটি বেছে নিন and


0

অ্যান্ড্রয়েড প্রকল্পের ফোল্ডারে .jar ফাইলটি অনুলিপি করা সর্বদা সম্ভব হয় না।
বিশেষত যদি এটি আপনার কর্মক্ষেত্রের অন্য কোনও প্রকল্পের আউটপুট হয় এবং এটি আপডেট হতে থাকে।

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

ইউআইতে চয়ন করুন:

প্রকল্প -> আমদানি -> ফাইল সিস্টেম -> আপনারজার.জার -> (বিকল্প অঞ্চল) উন্নত -> কর্মক্ষেত্রে লিঙ্ক তৈরি করুন।

লিঙ্কটি। প্রকল্প প্রকল্পে সংরক্ষণ করা হয় :

<linkedResources>
    <link>
        <name>yourjar.jar</name>
        <type>1</type>
        <locationURI>PARENT-5-PROJECT_LOC/bin/android_ndk10d_armeabi-v7a/yourjar.jar</locationURI>
    </link>
</linkedResources>

PARENT-5-PROJECT_LOC অর্থ প্রকল্পের ফাইল সম্পর্কিত, 5 ডিরেক্টরি আপ (../../..//../..//)।

তারপরে এটি লাইব্রেরিতে যুক্ত করুন:
প্রকল্প -> সম্পত্তি -> জাভা বিল্ড পাথ -> গ্রন্থাগারগুলি -> জার যোগ করুন -> আপনারজার.জার

একই উইন্ডোতে অর্ডার এবং রফতানি ট্যাবটি চয়ন করুন এবং আপনার জারটিকে চিহ্নিত করুন যাতে এটি এপিকে যুক্ত করা হবে।

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