android - লপম - মোবাইল অ্যাপস তৈরি




অ্যান্ড্রয়েড স্টুডিও build.gradle বহিরাগত প্রকল্প যোগ করুন (4)

নিচের সেটআপের সাথে আমার একটি নমুনা প্রকল্প আছে:

/root
  + Pure Java Lib
  + Android Test Lib
  + Android Test Project

যেখানে ' টেস্ট প্রকল্প ' ' টেস্ট লিবি ' তে নির্ভরশীল, এবং শেষটি ' বিশুদ্ধ জাভা লিবি ' প্রকল্পটির উপর নির্ভর করে এবং এই সেটআপটি চালু করা ঠিক সূক্ষ্ম কাজ করে।

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

উদাহরণস্বরূপ পূর্ববর্তী উদাহরণটি ব্যবহার করতে হলে:

/root
  + Android Test Lib
  + Android Test Project

/Some Other folder (another repository for example)
  + Pure Java Lib

আমি অনেক কনফিগারেশনের চেষ্টা করেছি, কিন্তু প্যারেন্ট ফোল্ডার (উদাহরণের ক্ষেত্রে ' রুট ') এর বাইরে কোনও প্রকল্পের উল্লেখ করার উপায় খুঁজে পাইনি।

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

কেউ জানেন কিভাবে গ্র্যাডেলের সাথে এটি অর্জন করা যায়?

হালনাগাদ

আমি আরো জেনেরিক হতে চেষ্টা করব:

/C:/

  /Project A
    + Module 1 - Pure Java
    + Module 2 - Android Test Lib
    + Module 3 - Android Test Project

  /Project B
    + Module 1 - Pure Java
    + Module 2 - Pure Java
    + Module 3 - Pure Java

আমি প্রকল্প বি এর মডিউল 1 ব্যবহার করতে চাই, প্রকল্প এ

আপডেট: 09-03-19

আমি এখন এটি দেখেছি এবং আমার অবশ্যই আপডেট করা উচিত ... প্রায় 6 বছর পর, আজ আমি জ্ঞানবান, এবং আমি নিশ্চিতভাবেই বলতে পারি সমস্যাটি "সত্যের উত্স" ধারণাটি সম্পর্কে আমার ভুল ধারণা ছিল।

লাইব্রেরীর প্রতি একবারে কোনও ধারণা থাকা সত্ত্বেও ধারণাটি ভাল ছিল .. এবং এটি "সত্যের উত্স" বলে মনে হতে পারে, বাস্তব "সত্যের উত্স" প্রতিটি প্রকল্পটি সেই লাইব্রেরির ব্যবহার করা কোডের সংস্করণ হবে লাইব্রেরি নিজেই সংস্করণ আছে .. লাইব্রেরি ব্যবহার করা হয় যা প্রকল্পের "সত্য উত্স" অনেক সংস্করণ আপেক্ষিক।

বেশিরভাগ বিকাশকারী এটি পছন্দ করে না এমন সঠিক উপায়টি ব্যবহার করবে এবং এটি গিট সাবমোডুলাস এবং হ'ল প্রতিটি প্রকল্পের উত্সকে সদৃশ করে তুলবে কারণ প্রতিটি প্রকল্প কোডটির একটি ভিন্ন সংস্করণ ব্যবহার করে।

তবে আপনার সমস্ত প্রকল্পগুলি আপনার সমস্ত লাইব্রেরিগুলির সর্বশেষ এবং সর্বশ্রেষ্ঠ সংস্করণটি ব্যবহার করার লক্ষ্যে লক্ষ্য করা দরকার .. যা নিজেই একটি চ্যালেঞ্জ।

লাইব্রেরির উত্সগুলির সাথে একটি প্রকল্প বিকাশের এই সঠিক উপায়টি হল এই স্কেলগুলি ... আপনার নিজের লাইব্রেরির কনফিগারেশন সহ প্রতিটিতে শত শত প্রকল্প থাকতে পারে।


Gradle 1.10 (এটির জন্য অন্য কোন সংস্করণগুলি বৈধ হবে তা জানি না) এখানে দেওয়া প্রতিক্রিয়াটির ভিত্তিতে আমি এসেছি: http://forums.gradle.org/gradle/topics/reference_external_project_as_dependancy

আমার একটি অ্যাপি লাইব্রেরী প্রকল্প, একটি সাধারণ লাইব্রেরি প্রকল্প এবং মূল অ্যাপ্লিকেশন প্রকল্প রয়েছে। প্রতিটি একটি স্ট্যান্ড-একা ডেভেলপমেন্ট প্রকল্প এবং দুটি লাইব্রেরি একাধিক অ্যাপ্লিকেশনের মধ্যে ভাগ করা বোঝানো হয়।

সাধারণ প্রকল্পের জন্য settings.gradle মধ্যে:

def apiLibDir = file('../android-api/android-api-lib')
def rootProjectDescriptor = settings.rootProject
settings.createProjectDescriptor(rootProjectDescriptor, 'android-api-lib', apiLibDir)
include ':android-api-lib'

তারপর প্রধান অ্যাপ্লিকেশন প্রকল্প settings.gradle মধ্যে:

def apiLibDir = file('../android-libs/android-api/android-api-lib')
def rootProjectDescriptor = settings.rootProject
settings.createProjectDescriptor(rootProjectDescriptor, 'android-api-lib', apiLibDir)
include ':android-api-lib'

def commonLibDir = file('../android-libs/android-common/android-common-lib')
settings.createProjectDescriptor(rootProjectDescriptor, 'android-common-lib', commonLibDir)
include ':android-common-lib'

প্রতিটি build.gradle ফাইলগুলির মধ্যে আপনি কেবলমাত্র তাদের নাম উল্লেখ করে সেগুলি সেটিংস.createProjectDescriptor- এ আপনি যে কোনও প্রকল্প নির্ভরতার মত দিয়েছেন।

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile project(':android-api-lib')
    compile project(':android-common-lib')
}

এটা কাজ বলে মনে হচ্ছে। এপিআই লাইব্রেরি সংজ্ঞায়িত একাধিক ডাইএক্স ফাইলের জন্য এটি এমনকি একটি ত্রুটিও নিক্ষেপ করেনি, আমি সন্দেহ করি কারণ এটি একই বিল্ড প্রসেসের সমস্ত অংশ ছিল এবং গ্র্যাডেলটি এটির সম্পূর্ণরূপে যথেষ্ট স্মার্ট ছিল।


আপনাকে আপনার ফাইল সেটিংস এ রাখতে হবে। এই রেখাগুলিকে গ্রাস করুন:

include ':module2'
project(':module2').projectDir = new File(settingsDir, '../Project 2/Module2')

তারপর আপনি আপনার builde.gradle (মডিউল: অ্যাপ্লিকেশন) নির্ভরতা গাছের মধ্যে যুক্ত করতে হবে, এই লাইনটি:

compile project(':module2')

অথবা প্রজেক্ট স্ট্রাকচার > অ্যাপ > নির্ভরতাগুলিতে যান , যোগ করুন এ ক্লিক করুন , 3 মডিউল নির্ভরতা নির্বাচন করুন এবং আপনার মডিউল নির্বাচন করুন


কিছু অন্যান্য ফোল্ডার একটি ধীরে ধীরে প্রোজেক্ট হিসাবে আপনি আপনার সেটিংস.গ্র্যাডেল ফাইলে নিম্নলিখিত মত কিছু যোগ করতে পারে অনুমান:

include ':module1'
project(':module1').projectDir = new File(settingsDir, '../Project B/Module 1')

প্রকল্পের উপর রাইট ক্লিক করুন - "ওপেন মডিউল সেটিংস" নির্বাচন করুন - বাম প্যানেলে "মডিউলগুলি" নির্বাচন করুন - শীর্ষে "+" চিহ্নটিতে ক্লিক করুন - "আমদানি মডিউল" নির্বাচন করুন।

মডিউল আমদানি করার পরে। আপনি আপনার বর্তমান প্রকল্পের জন্য নির্ভরতা হিসাবে এটি যোগ করতে হবে।

"মডিউলগুলি" বাম প্যানেলে নির্বাচন করুন এবং আপনার প্রকল্পের উপর ক্লিক করুন - এখন নির্ভরতা ট্যাবে যান এবং নীচে অবস্থিত "+" প্রতীকটিতে ক্লিক করুন - তৃতীয় বিকল্পটি নির্বাচন করুন "মডিউল নির্ভরতা" এবং যদি আপনি সঠিকভাবে আপনার প্রকল্প আমদানি করেছেন তবে আপনার বিদ্যমান প্রকল্পে নির্ভরতা হিসাবে যোগ করা যেতে পারে এমন সমস্ত উপলব্ধ মডিউল আপনাকে দেখায়।







android-library