অ্যান্ড্রয়েড স্টুডিও 3.0.০.০ এ ডেটা বন্ডিং এবং কোটলিন কীভাবে ব্যবহার করবেন


100

আমি সবেমাত্র অ্যান্ড্রয়েড স্টুডিও 3.0.০.০ ব্যবহার করা শুরু করেছি, তবে প্রতিবারই আমি আমার প্রকল্পটি তৈরি করার চেষ্টা করি আমি এই ত্রুটিটি পেয়েছি:

Error:Circular dependency between the following tasks:
:app:compileDebugKotlin
+--- :app:dataBindingExportBuildInfoDebug
|    \--- :app:compileDebugKotlin (*)
\--- :app:kaptDebugKotlin
     \--- :app:dataBindingExportBuildInfoDebug (*)
(*) - details omitted (listed previously)

আমি ব্যাবহার করছি

kapt "com.android.databinding:compiler:2.2.0"

আমি ব্যবহার করার আগে

androidProcessor "com.android.databinding:compiler:2.2.0"

এবং এটি ঠিকঠাক কাজ করছিল ... আমি কী ভুল করছি ??

ধন্যবাদ!


4
: একটি বাগ সৃষ্টি ইস্যু মত মনে হয় youtrack.jetbrains.com/issue/KT-17936
Vyacheslav Gerasimov

কোনও ত্রুটিযুক্ত কোনও বাঁধাই ছাড়াই এই বাগটি উপস্থিত হয়। আপনি কেবল কোটলিনের 1.1.2-4 সংস্করণ ব্যবহার করুন এবং প্লাগইন প্রয়োগ করুন: 'কোটলিন-ক্যাপ্ট'। তারপরে আপনি এই ত্রুটিটি পেয়ে যাবেন ত্রুটি: নিম্নলিখিত কাজের মধ্যে বিজ্ঞপ্তি নির্ভরতা:: অ্যাপ্লিকেশন: compileDebugKotlin \ ---: অ্যাপ: kaptDebugKotlin \ ---: অ্যাপ: সংকলনদেবগকোটলিন ( ) ( ) - বিবরণ বাদ দেওয়া (পূর্বে তালিকাভুক্ত)
আর্সেনিয়াস

এছাড়াও সংশ্লিষ্ট ইস্যু: issuetracker.google.com/issues/38471980
BOD

উত্তর:


21

দেখে মনে হচ্ছে ডেটা বাইন্ডিং যুক্ত করতে আপনার অ্যাপ্লিকেশনটিতে গ্রেডল মডিউল স্তরে গ্রেডেল প্রয়োজন need

  1. apply plugin: 'kotlin-kapt'
  2. android { ... dataBinding { enabled = true } }
  3. dependencies { ...... kapt "com.android.databinding:compiler:$compiler_version" }

লক্ষ্য করুন যে আমি সংস্থার সংস্করণটি প্রকল্পের স্তরের বিল্ড গ্রেডে একটি পরিবর্তনশীল করেছিলাম যাতে এটি কোনও স্থান থেকে পরিচালনা করা যায়

ডিফল্ট ছিল: ext.kotlin_version = '1.1.3-2'

আমি বন্ধনী সিনট্যাক্স যুক্ত করেছি:

ext{
    kotlin_version = '1.1.3-2'
    compiler_version = '3.0.0-beta6'
}

4
কোটলিন-ক্যাপ্ট এবং সেই নির্ভরতা লাইন যুক্ত করার জন্য এটি সঠিক উত্তর। শীর্ষের উত্তরটি আর প্রাসঙ্গিক নয়
SpaceMonkey

সংস্করণটির পরিবর্তনশীলটির ব্যবহার পছন্দ হয়েছে
শিরাণে 85

আমি পাচ্ছি: - সমস্ত সংস্করণ সহ [ক্যাপ্ট] একটি ব্যতিক্রম ঘটেছে: জাভা.লং.নুলপয়েন্টার এক্সসেপশন
পাভেল জায়েটসেভ

@ পাভেলজাইতসেভ আমি কিছুক্ষণের মধ্যে অ্যান্ড্রয়েড স্টুডিও ব্যবহার করি নি
রাবার হাঁস

78

ইউপিডি: এটি আপনার প্রকল্পের মূলটিতে অ্যান্ড্রয়েড গ্রেডল প্লাগইন 3.0.0-alpha3 এর জন্য ঠিক করা হয়েছিল build.gradle, buildscript dependenciesব্যবহারের জন্য পরিবর্তন করুন

classpath 'com.android.tools.build:gradle:3.0.0-alpha3'

এটি আসলে কোটলিন গ্রেডল প্লাগইনটিতে একটি বাগ যা অ্যান্ড্রয়েড গ্রেডল প্লাগইন 3.0.0-alpha1 এর সাথে আন্তঃ-অপারেশন হয়, কীভাবে কার্যগুলির ইনপুট এবং আউটপুট সেট হয় (এবং এভাবে কীভাবে কার্যগুলির সাথে সংযুক্ত থাকে নির্ভর উপর সম্পর্ক)।

কেটি -17936 ইস্যুটি তৈরি করার জন্য @ ভাইচেস্লাভ জেরাসিমভকে ধন্যবাদ জানাই


অস্থায়ী কর্মক্ষেত্র হিসাবে, আপনি কোটলিন গ্রেডল প্লাগইন ১.১.২-২ এ ফিরে যাওয়ার এবং ইনক্রিমেন্টাল সংকলন অক্ষম করার চেষ্টা করতে পারেন:

আপনার প্রকল্পের মূলে build.gradle, কোটলিন গ্রেডল প্লাগইনের সংস্করণ পরিবর্তন করুন:

buildscript {
    ...
    dependencies {
        ...
        classpath 'org.jetbrains.kotlin:kotlin-gradle-plugin:1.1.2-2'
    }
}

যোগ local.propertiesপ্রকল্পের রুট, নিম্নলিখিত লাইন দিয়ে:

kotlin.incremental=false

এটি একটি পরিচিত সমস্যা যে কোটলিন গ্রেডল প্লাগইন ১.১.২-২ এবং এর নীচে সর্বাধিক নতুন এজিপি সংস্করণগুলির সাথে ক্র্যাশ করে এবং বর্ধিত সংকলন অক্ষম করে এমনটি ক্র্যাশটিকে সংশোধন করে বলে মনে হচ্ছে।


আমি বিশ্বাস করি আপনি গ্রেড.প্রপ্রেটিস বোঝাতে চেয়েছিলেন
বোর্জেস

4
@ ল্যান্ড্রোবার্গেজফেরিরা, আপনি এগুলির যে কোনও একটিতে ব্যবহার করতে পারেন, কারণ গ্রেডল local.propertiesআপনার প্রকল্পগুলিতে ফাইলটি সনাক্ত করে এবং ব্যাখ্যা করে । ভাল, সম্ভবত স্থানীয় মেশিন বৈশিষ্ট্যের local.propertiesজন্য আরও উপযুক্ত ।
হটকি 21

4
: এই ত্রুটির এই বিশালাকার stackoverflow.com/questions/44056104/...
gderaco

6
প্রকৃতপক্ষে 1.1.2-3 এ ফিরে আসার জন্যও সূক্ষ্মভাবে কাজ করে। কোটলিন-ক্যাপ্টেন প্লাগইন সহ কোটলিন ১.১.২.৪ ব্যবহার করে অ্যান্ড্রয়েড স্টুডিও ২.৩.২ এবং গ্রেড ২.৩.২ একই সমস্যা
আর্সেনিয়াস

4
@ হটকি ইস্যুয়েট্রেকার জিওএলভিউ ভিত্তিক হাইডকিউএস / 38447344 এটি অ্যান্ড্রয়েড প্লাগইনে একটি সমস্যা, কোটলিন গ্রেডেল প্লাগইন নয়। একটি ফিক্স তৈরি করা হয়েছিল এবং পরবর্তী 3.0.0 আলফা রিলিজে প্রকাশের পরিকল্পনা করা হয়েছে।
নিমরোড দয়ান

17

যারা এখনও সঠিক সমাধান খুঁজছেন তাদের জন্য, গুগল ইতোমধ্যে অ্যান্ড্রয়েড স্টুডিও 3.0 ক্যানারি 3 বিল্ডে এই সমস্যাটি স্থির করেছে ।

শুক্রবার, 2 জুন, 2017

আমরা সবেমাত্র অ্যানড্রয়েড স্টুডিও 3.0 ক্যানারি 3 ক্যানারি এবং দেব চ্যানেলগুলিতে প্রকাশ করেছি। অ্যান্ড্রয়েড গ্রেডল প্লাগইন 3.0.0-alpha3 এছাড়াও maven.google.com এর মাধ্যমে প্রকাশিত হয়েছিল। এই প্রকাশের গ্র্যাডল , কোটলিন এবং আরও অনেকগুলি স্থির স্থির রয়েছে। আমরা আমাদের বৈশিষ্ট্যগুলি স্থিতিশীল করার সাথে সাথে স্টুডিও 3.0 এর সমস্ত ক্ষেত্রে বাগগুলি ঠিক করতে অবিরত রেখেছি, সুতরাং দয়া করে প্রতিক্রিয়াটি অবিরত রাখুন।

কাজ গ্রেড কনফিগারেশন:

build.gradle (প্রকল্প)

buildscript {
    ext.kotlin_version = '1.1.2-4'
    repositories {
        jcenter()
        maven {
            url 'https://maven.google.com'
        }
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.0.0-alpha3'
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
    }
}

build.gradle (মডিউল)

apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-kapt'


android {
    dataBinding.enabled = true
}
dependencies {
    kapt "com.android.databinding:compiler:3.0.0-alpha3"
}

অ্যান্ড্রয়েড স্টুডিও ২.৩.২ এ এই সমস্যাটি কীভাবে ঠিক করবেন?
আর্সেনিয়াস

আপনি ইনক্রিমেন্টাল মিথ্যা দিয়ে কোটলিন প্লাগইনের একটি পুরানো সংস্করণ ব্যবহার করতে পারেন। "হটকি" দ্বারা পূর্ববর্তী উত্তরটি পরীক্ষা করুন
প্রকাশ সরকার

4
না, 1.1.2-4এখনও কাজ করে না। এক এখনও ব্যবহার করা হয়েছে 1.1.2-2আপনার build.gradle (মডিউল) করতে অথবা আপনাকে অমীমাংসিত রেফারেন্স পাবেন: databinding এবং kapt জুড়ুন "3.0.0-alpha3: কম্পাইলার com.android.databinding"।
0

1.1.2-5 এ ঠিক হয়নি
দাইভিদ

2

আমি ডেটা জন্য recenly লেখার ব্লগ Kotlin সঙ্গে Android বাঁধাই আছে এখানে

ক্লাসপাথ ব্যবহার করুন

classpath 'com.android.tools.build:gradle:3.0.0-beta2'

নির্ভরতা

apply plugin: 'kotlin-android'

apply plugin: 'kotlin-android-extensions'

apply plugin: 'kotlin-kapt'

android {
    ...
    dataBinding {
        enabled = true
    }
}

dependencies {
    ......
    kapt 'com.android.databinding:compiler:2.3.1'
}

আরও বিস্তারিত জানার জন্য এই পোস্টটি দেখুন

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