জেটিফায়ার কী?


100

জেটিফায়ার কী? উদাহরণস্বরূপ, অ্যান্ড্রয়েড-প্যাকেজযুক্ত নির্ভরতা ব্যবহার করে একটি নতুন প্রকল্প তৈরি করতে, এই নতুন প্রকল্পটির গ্রেড.প্রোপার্টি ফাইলগুলিতে নিম্নলিখিত লাইনটি যুক্ত করা দরকার :

android.enableJetifier=true

সুতরাং এর অর্থ কী - "জেটিফায়ার সক্ষম করুন"?


30
আইআইআরসি, জেটিফায়ার হ'ল গুগলি প্রযুক্তির একটি নথিভুক্ত বিট যা অ্যান্ড্রয়েডএক্স লাইব্রেরি ব্যবহারের জন্য ট্রানজিটিভ নির্ভরতাগুলি স্বয়ংক্রিয়ভাবে রূপান্তরিত হওয়ার কথা। উদাহরণ স্বরূপ, ধরুন আপনি আছেন তারা implementation "com.commonsware.cwac:document:0.3.0"আপনার dependencies। লাইব্রেরি সংস্করণটির একটি ট্রানসিটিভ নির্ভরতা রয়েছে com.android.support:support-annotations:27.0.2। তবে আপনি androidx.annotation:annotationঅন্যান্য অ্যান্ড্রয়েডএক্স নির্ভরতা ব্যবহারের অংশ হিসাবে ব্যবহার করতে চান । Jetifier একরকম আপডেট হবে com.commonsware.cwac:documentব্যবহার করতে androidx.annotation:annotation
কমন্সওয়্যার

উত্তর:


70

এই বছরের গুগল আই / ও (18), গুগল জেটপ্যাক ঘোষণা করেছে যা বিকাশকারীর জীবনকে আরও সহজ করার জন্য লাইব্রেরিগুলির সেট / সংগ্রহ রয়েছে।

জেটপ্যাকের মধ্যে পূর্বে প্রবর্তিত অ্যান্ড্রয়েড আর্কিটেকচার উপাদানগুলি (ভিউমোডেল, রুম, পেজিং, লাইভ ডেটা ইত্যাদি) পাশাপাশি ওয়ার্কম্যানেজার, নেভিগেশনের মতো সদ্য প্রবর্তিত আর্কিটেকচার উপাদানগুলি অন্তর্ভুক্ত রয়েছে। এগুলি ছাড়াও জেটপ্যাকের অন্যান্য সেট লাইব্রেরি রয়েছে যেমন অ্যান্ড্রয়েডএক্স, অ্যান্ড্রয়েডকিটিএক্স ইত্যাদি ries

অ্যান্ড্রয়েডএক্স সমর্থন, ডাটাবেইন্ডিং, ডিজাইন ইত্যাদির মতো অ্যান্ড্রয়েড সমর্থন লাইব্রেরির জন্য নতুন প্যাকেজ কাঠামো is

যেমন এখন ওয়ার্ডগুলিতে বিকাশকারীরা অ্যান্ড্রয়েডএক্স.ড্যাটাবাইন্ডিং ব্যবহার করবে পরিবর্তে অ্যান্ড্রয়েড.ডাটাবাইন্ডিং। আমাদের প্রকল্পগুলিতে পাঠাগার আমদানি করার সময়

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

বিকাশকারীদের জন্য আরেকটি সুবিধা হ'ল আমাদের প্রকল্পের সমস্ত সমর্থন লাইব্রেরির জন্য একই সংস্করণ বজায় রাখার বিষয়ে আমাদের যত্ন নেওয়া উচিত নয়।

জেটিফায়ার সম্পর্কে, এটি নির্ধারিত সময়ে নির্ভরতার সমস্ত সমর্থন প্যাকেজকে রূপান্তর করে। জেটিফায়ারের সরকারী নথি হিসাবে

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

একটি প্রকল্পে অ্যান্ড্রয়েডএক্স ব্যবহার করতে আমাদের প্রকল্পের জন্য টার্গেটএসডিপি ভার্সনটি 28 এ সেট করতে হবে এবং গ্রেড.প্রোপার্টি ফাইলগুলিতে নিম্নলিখিত 2 লাইন যুক্ত করতে হবে।

android.useAndroidX=true

android.enableJetifier=true

আমি আশা করি এটি আপনার প্রশ্নের উত্তর দেবে।

সম্পাদনা

এই লিঙ্কটিতে তাদের অ্যান্ড্রয়েডএক্স কাউন্টার অংশ সহ সমস্ত সমর্থন লাইব্রেরি উপাদান ম্যাপিং রয়েছে।

এছাড়াও অ্যান্ড্রয়েডএক্স সম্পর্কে বিশদ ব্যাখ্যার জন্য দয়া করে এই ব্লগটি দেখুন


35
স্রেফ অ্যান্ড্রয়েডএক্স এবং জেটপ্যাক নিয়ে আপনি "জেটিফায়ার কী?" প্রশ্নের উত্তর আসলেই দিচ্ছেন না।
ডেভিড মিগুয়েল

4
@ ডেভিড মিগুয়েল আমি জিজ্ঞাসিত প্রধান প্রশ্নের উত্তর প্রদান করেছি যার অর্থ কী - "জেটিফায়ার সক্ষম করুন" ?. যদিও আপনি যদি আমার উত্তরটি আংশিক বলে মনে করেন তবে আমি আমার উত্তরটি সেই অনুযায়ী আপডেট করব।
সিলওয়ার

74

ধরে নিই যে আপনার সাথে পরিচিত AndroidX। যদি তা না হয় তবে দয়া করে @ এই পোস্টটি দেখুন

Jetifiersupport librariesআপনার সমস্ত নির্ভরতা AndroidXস্বয়ংক্রিয়ভাবে রূপান্তরিত করবে , আপনি যদি এটি সেট না করে থাকেন trueতবে আপনার প্রকল্পের উভয়ই থাকবে, সমর্থন ( ২৮.০.০ সংস্করণের পরে অবনমিত হয়েছে ) এবং অ্যান্ড্রয়েডএক্স প্যাকেজ, যা অপ্রয়োজনীয়।

উদাহরণ স্বরূপ

যদি PhotoView.javaআপনার নির্ভরতা থাকে। এটি সমর্থন লাইব্রেরি ব্যবহার করে AppCompatImageView

import android.support.v7.widget.AppCompatImageView;

এই ক্লাসটি এখন androidxপ্যাকেজে সরানো হয়েছে , তবে PhotoViewঅ্যান্ড্রয়েড কীভাবে পাবেন AppCompatImageView? এবং অ্যাপ্লিকেশনটি এখনও ডিভাইসে চলছে।

কে এই রান করেছে?

জেটিফায়ার , যা নির্ধারিত সময়ে নির্ভরতার সমস্ত সমর্থন প্যাকেজকে রূপান্তর করে।

জেটিফায়ার রূপান্তরিত হবে android.support.v7.widget.AppCompatImageView করার androidx.appcompat.widget.AppCompatImageViewসময় প্রকল্পের নির্মাণ করে।

উপসংহার

সক্ষম করা হলে তা Jetifier গুরুত্বপূর্ণ যখন আপনার কাছ থেকে মাইগ্রেট সাপোর্ট লাইব্রেরি থেকে অ্যান্ড্রয়েডএক্সে

দেখা অ্যান্ড্রয়েডএক্স সম্পর্কে আরও এই পোস্টটি

তথ্য

নির্ভরতা ক্লাস ব্যবহার করার সময় আপনার কোড জেটিফায়ার সক্ষম করার পরে সংকলন সময় ত্রুটিগুলি দেখায়। যা আপনি মুছে ফেলার মাধ্যমে অপসারণ করতে পারেন .idea, .gradleএবং পুনরায় সিঙ্ক প্রকল্পের।

ইমেজ 2

ইমেজ 1


10
আপনি .idea / লাইব্রেরিগুলি মুছে ফেলা এবং গ্রেডলটিকে পুনরায় সিঙ্ক করার মাধ্যমে সংকলন-সময় ত্রুটিগুলি থেকে মুক্তি পেতে পারেন।
ক্লো নিব্বে

4
আমি মনে করি যে জেটিফায়ার এখানে উল্লিখিত হিসাবে রানটাইম নয় বরং নির্মাণের সময় কাজ করে। আপনি হয় Android anden.enableJefiier = গ্রেডের ক্ষেত্রে সত্য ব্যবহার করতে পারেন বা অ্যান্ড্রয়েডে স্থানান্তর করতে স্ট্যান্ডেলোন জেটিফায়ার সরঞ্জাম বিকাশকারী ব্যবহার করতে পারেন andআন্ড্রয়েড / স্টুডিও / কম্যান্ড-লাইন / জেটিফায়ার and এই উভয় বিকল্পগুলি নির্মাণের সময় প্যাকেজের নামগুলি প্রতিস্থাপন করে যাতে পুরানো সমর্থন লাইব্রেরিগুলি এমনকি প্যাকেজিংয়ের অংশ হয় না।
নিশান্থ

6

Jetifier একটি অ্যান্ড্রয়েড প্রকল্পের মাইগ্রেট সাহায্য করে AndroidX

জেটিফায়ার আপনার অ্যান্ড্রয়েডএক্স প্রকল্পের সাথে তৃতীয় পক্ষের লাইব্রেরিটিকে সামঞ্জস্য করতে সহায়তা করে ।

যদি আপনি আপনার অ্যান্ড্রয়েড প্রকল্পে কোনও তৃতীয় পক্ষের লাইব্রেরি ব্যবহার না করে থাকেন তবে আপনাকে জেটিফায়ার ব্যবহার করার দরকার নেই কারণ আপনি অ্যান্ড্রয়েডএক্সে স্থানান্তরিত হওয়ার ক্ষেত্রে জেটিফায়ার আপনার প্রকল্পের সাথে কেবল "তৃতীয় পক্ষের লাইব্রেরি" তৈরি করতে সহায়তা করে। সুতরাং আপনার প্রকল্পটি জেটিফায়ার ব্যবহার করতে আপনি গ্রেড.প্রোপার্টিতে কোডের নিচে লিখবেন

android.enableJetifier=true
android.useAndroidX=true

যদি আপনি অ্যান্ড্রয়েডএক্সে মাইগ্রেশন না করে এবং অ্যান্ড্রয়েড লাইব্রেরি ব্যবহারের পূর্ববর্তী পদ্ধতি ব্যবহার করে না (যেমন: com.android.support ), তবে এই তৃতীয় পক্ষের লাইব্রেরিগুলি ইতিমধ্যে পূর্ববর্তী পদ্ধতির সাথে সামঞ্জস্যপূর্ণ হওয়ার কারণে এই তৃতীয় পক্ষের লাইব্রেরিগুলিকে সামঞ্জস্য করার প্রয়োজন নেই need অ্যান্ড্রয়েড লাইব্রেরি ব্যবহার করে। সেক্ষেত্রে আপনার জেটিফায়ার ব্যবহার করার দরকার নেই, সুতরাং এখনই আপনাকে উপরে বর্ণিত লাইনগুলি লেখার দরকার নেই বা ভবিষ্যতে মানগুলি অ্যান্ড্রয়েডএক্সে পরিবর্তন করতে কেবল নীচের মত লিখতে পারেন: -

android.enableJetifier=false
android.useAndroidX=false

4

জেটিফায়ার

Jetifier একটি সহজ টুল স্বয়ংক্রিয়ভাবে আপনার মাইগ্রেট হয় dependenciesথেকেAndroidX বিল্ড সময়ে। এটি ছাড়াই, আপনি স্থানান্তরিত হওয়ার আগে আপনার অ্যান্ড্রয়েডএক্স সংস্করণ ব্যবহার করার জন্য প্রয়োজনীয় প্রতিটি নির্ভরতা প্রয়োজন এবং এটি সম্ভবত কিছু সময়ের জন্য ঘটবে না।

এখানে লক্ষ করার জন্য একটি গুরুত্বপূর্ণ সীমাবদ্ধতা রয়েছে: জেটিফায়ার কেবল প্যাকেজড আর্টিক্টগুলিতে কাজ করে। এটি আপনার উত্স কোডে কাজ করে না, যা আপনি নিজেকে আপডেট করবেন বলে আশা করা হচ্ছে

অ্যান্ড্রয়েডএক্স সক্ষম করার জন্য আপনার gradle.propertiesফাইলে 2 টি পতাকা যুক্ত করতে হবে। প্রথম পতাকাটি অ্যান্ড্রয়েড প্লাগইনকে AndroidXপরিবর্তে প্যাকেজগুলি ব্যবহার করতে বলে AppCompat, এবং দ্বিতীয় পতাকাটি সক্ষম করবে Jetifier:

android.useAndroidX=true
android.enableJetifier=true

দেখুন এই , এই পোস্টে AndroidX সম্পর্কে আরো বুঝতে


3

অফিসিয়াল ডক থেকে

যখন এই পতাকাটি সত্যে সেট করা থাকে, অ্যান্ড্রয়েড প্লাগইন স্বয়ংক্রিয়ভাবে বিদ্যমান তৃতীয় পক্ষের লাইব্রেরিগুলি তাদের বাইনারিগুলি পুনরায় লিখে অ্যান্ড্রয়েডএক্স নির্ভরতা ব্যবহার করতে স্থানান্তর করে। ফ্ল্যাগটি নির্দিষ্ট না থাকলে ডিফল্টরূপে মিথ্যা।

এটি সামঞ্জস্য জন্য দরকারী। যখন কোনও গ্রাহক ব্যবহার করেন androidXএবং কোনও প্রযোজক ব্যবহার করেন support। উদাহরণস্বরূপ যখন আপনার প্রকল্পটি AndroidXনির্ভরতা ব্যবহার করতে চায় যখন [উদাহরণস্বরূপ]support library পরিবর্তে ব্যবহার করেAndroidX


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