অ্যান্ড্রয়েড স্টুডিওতে আর ফাইল তৈরি করুন


173

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

কোনও ধারণা কীভাবে একটি লাইব্রেরি থেকে আর ফাইল তৈরি করবেন?

উত্তর:


225

যদি আপনার গ্রন্থাগারটি অ্যান্ড্রয়েড লাইব্রেরি হিসাবে সেট আপ করা হয় (যেমন এটি apply plugin: 'com.android.library'তার বিল্ড.gradle ফাইলে বিবৃতিটি ব্যবহার করে ), এটি নির্মিত হলে এটি একটি আউটপুট আউটপুট দেয়। এটি বিল্ড / আউটপুট / আর / এ প্রদর্শিত হবে আপনার মডিউল ডিরেক্টরিতে ডিরেক্টরিতে প্রদর্শিত হবে।

একটি নতুন অ্যান্ড্রয়েড লাইব্রেরি তৈরি করতে আপনি ফাইল> নতুন মডিউলটিতে "অ্যান্ড্রয়েড লাইব্রেরি" টাইপ চয়ন করতে পারেন।


3
সংস্করণটি এআআআআআআর এর সত্যই বাহ্যিক। আপনি সাধারণত একটি ম্যাভেন পম ফাইল সেট আপ করবেন যার সংস্করণ তথ্য রয়েছে।
স্কট বার্তা

1
লাইব্রেরির লিব্স ফোল্ডারে আমার আরআর ফাইল রয়েছে তাই এটি বিল্ড / আউটপুট / আর / সরাসরি অন্তর্ভুক্ত করা হয় না
গণেশ জোগাম

4
আর ফাইলটি অ্যাপ / বিল্ড / আউটপুট / আআর / তে উপস্থিত হয়েছিল এবং প্রকল্প স্তরে / বিল্ড / ফোল্ডারে নেই! যদি আপনি এটি না পান ...
পেরেসিসউসার

29
মনে রাখবেন যে আমার উত্পন্ন করতে aar, আমাকে Build > Rebuild Projectঅ্যান্ড্রয়েড স্টুডিওতে একটি করতে হয়েছিল। কেবল চলমান, ডিবাগিং, বা বিল্ডিং APK aarআমার জন্য তৈরি করে নি।
অ্যাডাম জনস

8
@ অ্যাডাম জনস ./gradlew moduleName:assembleReleaseটার্মিনাল ট্যাবটিতে দ্রুততর পন্থায় আছেন
সমীর জে

159

স্থানীয় বিল্ড থেকে রফতানি .আর ফাইলটি পুনরুদ্ধার করুন

যদি আপনার অ্যান্ড্রয়েড লাইব্রেরি প্রকল্প হিসাবে সংজ্ঞায়িত একটি মডিউল থাকে তবে আপনি build/outputs/aar/সেই প্রকল্পের ডিরেক্টরিতে সমস্ত বিল্ড ফ্লেভারের (ডিবাগ এবং ডিফল্টরূপে প্রকাশ) এর জন্য ফাইল ফাইল পাবেন ।

your-library-project
    |- build
        |- outputs
            |- aar
                |- appframework-debug.aar
                 - appframework-release.aar

এই ফাইলগুলি উপস্থিত না থাকলে একটি বিল্ড শুরু করুন

gradlew assemble

ম্যাকোস ব্যবহারকারীদের জন্য

./gradlew assemble

গ্রন্থাগার প্রকল্পের বিশদ

একটি লাইব্রেরি প্রকল্পে একটি build.gradleফাইল রয়েছে apply plugin: com.android.library। একটি .aarফাইল হিসাবে প্যাকেজযুক্ত এই লাইব্রেরির রেফারেন্সের জন্য আপনাকে কিছু বৈশিষ্ট্য যেমন প্যাকেজ এবং সংস্করণ নির্ধারণ করতে হবে।

build.gradleলাইব্রেরির জন্য উদাহরণ ফাইল (এই উদাহরণে মুক্তির মধ্যে অবরুদ্ধকরণ অন্তর্ভুক্ত রয়েছে):

apply plugin: 'com.android.library'

android {
    compileSdkVersion 21
    buildToolsVersion "21.1.0"

    defaultConfig {
        minSdkVersion 9
        targetSdkVersion 21
        versionCode 1
        versionName "0.1.0"
    }
    buildTypes {
        release {
            minifyEnabled true
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

আপনার প্রকল্পে .aar ফাইল রেফারেন্স

আপনার অ্যাপ্লিকেশন প্রকল্পে আপনি এই .aarফাইলটি libsফোল্ডারে ফেলে দিতে পারেন build.gradleএবং নীচের উদাহরণটি ব্যবহার করে এই লাইব্রেরিটি উল্লেখ করতে ফাইলটি আপডেট করতে পারেন:

apply plugin: 'com.android.application'

repositories {
    mavenCentral()
    flatDir {
        dirs 'libs' //this way we can find the .aar file in libs folder
    }
}

android {
    compileSdkVersion 21
    buildToolsVersion "21.0.0"

    defaultConfig {

        minSdkVersion 14
        targetSdkVersion 20
        versionCode 4
        versionName "0.4.0"

        applicationId "yourdomain.yourpackage"
    }

    buildTypes {
        release {
            minifyEnabled true
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
        debug {
            minifyEnabled false
        }
    }
}

dependencies {
    compile 'be.hcpl.android.appframework:appframework:0.1.0@aar'
}

: Gradle স্থানীয় নির্ভরতা ফাইল উল্লেখ-এর জন্য বিকল্প অপশন পাওয়া যাবে http://kevinpelgrims.com/blog/2014/05/18/reference-a-local-aar-in-your-android-project

মাভেন ব্যবহার করে নির্ভরতা ভাগ করে নেওয়া

.aarআপনার সংস্থার মধ্যে এই ফাইলগুলি ভাগ করে নেওয়া দরকার হলে ম্যাভেন চেক আউট করুন। এই বিষয়টিতে একটি দুর্দান্ত লেখা পাওয়া যাবে: https://web.archive.org/web/20141002122437/http://blog.glassdiary.com/post/67134169807/how-to-share-android-archive- গ্রন্থাগার-Aar-জুড়ে

.Aar ফাইল ফর্ম্যাট সম্পর্কে

একটি আর ফাইলটি .zipএকটি বিকল্প এক্সটেনশন এবং নির্দিষ্ট সামগ্রী সহ কেবল একটি । বিশদগুলির জন্য আরার ফর্ম্যাট সম্পর্কে এই লিঙ্কটি পরীক্ষা করুন


11
বিস্ময়কর এবং বিস্তারিত উত্তর। +1 এর জন্য gradlew assemble- এটি আমার যে সমস্যাটি ছিল তা সমাধান করেছে solved
ফারবোদ সালামাত-জাদেহ

@hcpl কীভাবে আমার অ্যান্ড্রয়েড প্রকল্পকে .aar ফাইলে রূপান্তর করবেন
আনা

1
@NaveedAhmad আপনি ./gradlew চেষ্টা করেনি
hcpl

@ নাভিদআহমাদ তারপর আপনি সম্ভবত ভুল অবস্থান থেকে নির্বাহ করছেন বা আপনার গ্রেডের কনফিগারেশন আলাদা। আপনি "গ্রেডলিউ সনাক্ত করতে" চেষ্টা করতে পারেন তবে সত্যই যদি আপনি গ্রেডলু খুঁজে পেতে এবং চালানোতে সমস্যা বোধ করেন তবে এই সংক্ষিপ্ত উত্তরটি আপনাকে সাহায্য করবে না
এইচসিপিএল

বংশধরগণ জন্য: gradlewএকটি স্ক্রিপ্ট হয় প্রকল্পের toplevel ডিরেক্টরি
কোডক্লাউন 42

11

যেমন ব্যবহারকারী এইচসিপিএল বলেছেন ঠিক তেমন আপনি লাইব্রেরির সংস্করণ সম্পর্কে চিন্তা করতে না চাইলে আপনি এটি করতে পারেন:

dependencies {
    compile(name:'mylibrary', ext:'aar')
}

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


5

একই থ্রেডে এইচসিপিএলের উত্তরে উল্লিখিত প্রথম এবং দ্বিতীয় পদক্ষেপ অনুসরণ করার পরে , আমরা যুক্ত করেছি , '* .আর'], দির: আমাদের-অ্যান্ড্রয়েড-অ্যাপ-প্রকল্প-ভিত্তিক-গ্রেড / অ্যাপ / build.gradle ফাইল নীচে প্রদর্শিত হিসাবে:

...

dependencies {
       implementation fileTree(include: ['*.jar', '*.aar'], dir: 'libs')

...

আমাদের গ্রেড সংস্করণ com.android.tools.build:gradle:3.2.1


3

এআর তৈরি করতে

নীচের পদক্ষেপ অনুসরণ করার সময়।

File->New->New Module->Android Library and create

এআর তৈরি করতে

অ্যান্ড্রয়েড স্টুডিওতে নীচের পদক্ষেপগুলি অনুসরণ করে শীর্ষে ডান প্যানে গ্রেডে যান।

Gradle->Drop down library name -> tasks-> build-> assemble or assemble release

এআর বিল্ড / আউটপুট / আআআআআআআআআআআআআআআআআআআআ

তবে আমরা যদি চাই যে নামটি প্রকল্পের ডিরেক্টরিতে নির্দিষ্ট ফোল্ডারে আপনার নামের সাথে উত্পন্ন হয় তবে build.gradleনীচের মতো আপনার অ্যাপ্লিকেশন স্তরটি সংশোধন করুন

defaultConfig {
    minSdkVersion 26
    targetSdkVersion 28
    versionCode System.getenv("BUILD_NUMBER") as Integer ?: 1
    versionName "0.0.${versionCode}"


    libraryVariants.all { variant ->

        variant.outputs.all { output ->
            outputFileName = "/../../../../release/" + ("your_recommended_name.aar")
        }
    }
}

এখন এটি প্রকল্প ডিরেক্টরিতে "রিলিজ" নামের ফোল্ডার তৈরি করবে যা এআর থাকবে।


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