অ্যাপ্লিকেশন (22.0.0) এবং পরীক্ষার অ্যাপ্লিকেশন (21.0.3) এর সমাধান করা সংস্করণগুলি পৃথক


179

এপিআই 22 এ আপগ্রেড করার পরে এবং লাইব রিভিশন 22 সমর্থন করুন আমি নিম্নলিখিত সতর্কতা পাচ্ছি:

সতর্কতা: নির্ভরতা 'com.android.support:support-annotations' এর সাথে সংঘাত। অ্যাপ্লিকেশন (22.0.0) এবং পরীক্ষার অ্যাপ্লিকেশন (21.0.3) এর সমাধান করা সংস্করণগুলি পৃথক।

গ্রেডেল নিজেই বেশি ক্ষমাশীল তবে অ্যান্ড্রয়েড স্টুডিও তেমন কিছু নয়।

21.0.3 দিয়ে আমার কোনও নির্ভরতা ঘোষণা করা হয়নি ... 21.0.3 ব্যবহার করে এমন নির্ভরযোগ্য লাইব্রেরিগুলির মধ্যে একটি কি গুগল বাকী ব্যাচের সাথে আপডেট করতে ভুলে গেছে?

আমার build.gradleঅতিরিক্ত অতিরিক্ত কাটা

android {
  compileSdkVersion 22
  buildToolsVersion '22'

  defaultConfig {
    applicationId "com.REDACTED.android"
    minSdkVersion 14
    targetSdkVersion 22
    renderscriptSupportModeEnabled true
    versionName '1.0.0'
    versionCode 100
  }

  buildTypes {
    release {
      minifyEnabled true
      zipAlignEnabled true
      signingConfig signingConfigs.release
    }

    debug {
      minifyEnabled false
      zipAlignEnabled true
      signingConfig signingConfigs.debug
    }
  }

  dependencies {
    provided 'org.projectlombok:lombok:1.16.2'
    googleCompile 'com.google.android.gms:play-services-base:6.5.87'
    compile 'com.android.support:support-v4:22.0.0'
    compile 'com.android.support:appcompat-v7:22.0.0'
    compile 'com.android.support:support-v13:22.0.0'
    compile 'com.android.support:cardview-v7:22.0.0'
    compile 'com.android.support:palette-v7:22.0.0'
    compile 'com.android.support:support-annotations:22.0.0'
    compile 'com.github.chrisbanes.photoview:library:1.2.3'
    compile 'org.apache.commons:commons-lang3:3.3.2'
    compile 'commons-io:commons-io:2.4'
    compile 'commons-codec:commons-codec:1.10'
    compile 'com.jakewharton:butterknife:6.1.0'
    compile 'com.jakewharton:disklrucache:2.0.2'
    compile 'com.squareup:otto:1.3.6'
    compile 'com.squareup.picasso:picasso:2.5.0'
    compile 'com.squareup.retrofit:retrofit:1.9.0'
    compile 'com.squareup.okhttp:okhttp:2.2.0'
    compile 'com.squareup.okhttp:okhttp-urlconnection:2.2.0'
    compile 'com.squareup.okio:okio:1.2.0'
    compile 'com.flaviofaria:kenburnsview:1.0.6'
    compile 'com.edmodo:cropper:1.0.1'
    compile 'com.getbase:floatingactionbutton:1.8.0'
    compile 'com.nispok:snackbar:2.10.2'
    compile 'com.github.ksoichiro:android-observablescrollview:1.5.0'
    compile 'in.srain.cube:grid-view-with-header-footer:1.0.9'
    compile 'de.hdodenhof:circleimageview:1.2.2'
    compile fileTree(dir: 'libs', include: '*.jar')
    // Test Only Dependencies
    androidTestCompile 'com.android.support.test.espresso:espresso-core:2.0'
    androidTestCompile 'com.android.support.test:testing-support-lib:0.1'
    androidTestCompile 'com.android.support.test.espresso:espresso-contrib:2.0'
  }

আপডেট: (ধন্যবাদ মার্ক)

দেখে মনে হচ্ছে এটি এস্প্রেসো-অবদান

+--- com.android.support.test:testing-support-lib:0.1 (*)
\--- com.android.support.test.espresso:espresso-contrib:2.0
     +--- com.android.support:recyclerview-v7:21.0.3
     |    +--- com.android.support:support-annotations:21.0.3
     |    \--- com.android.support:support-v4:21.0.3
     |         \--- com.android.support:support-annotations:21.0.3
     +--- com.android.support:support-v4:21.0.3 (*)
     \--- com.android.support.test.espresso:espresso-core:2.0 (*)

5
গ্রেডল dependenciesটাস্ক আপনাকে অপরাধীকে সনাক্ত করতে সহায়তা করতে পারে: গ্রেড.আর.এল
ডকস

1
ধন্যবাদ মার্ক। দেখে মনে espresso-contribহচ্ছে কারণ ...
কোপোলি

2
আপনি একটি চেষ্টা করে দেখতে পারেন excludeএর 21.0.3 সংস্করণ ব্লক করতে recyclerview-v722.0.0 সংস্করণ নিজের, টান, এবং প্রার্থনা যে তারা জন্য পর্যাপ্ত সামঞ্জস্যপূর্ণ espresso-contribএর চাহিদা। ব্যক্তিগতভাবে, আমি অবাক হয়েছি যে আপনি সেই দীর্ঘ নির্ভরতা তালিকার সাথে আপনার
বিচক্ষণতা

1
হাঁ। এই কৌশলটি। যদি আপনি উত্তরটি রেখে দেন তবে আমি আপনাকে মটরশুটি দেব :) অ্যান্ড্রয়েডটেষ্টকম্পাইল ('com.android.support.test.espresso: এস্প্রেসো-অবদান: ২.০') module মডিউলটি বাদ দিন: 'সমর্থন-
মন্তব্যগুলি

1
আমার একই সমস্যাটি কেবল সহজ অ্যান্ড্রয়েড স্টুডিও রিস্টার্ট দ্বারা সমাধান করা হয়েছিল :)
লখবিন্দর সিং Dhিলন

উত্তর:


286

এই ধরণের জিনিস নিয়ে কাজ করার সময় পদক্ষেপ # 1 হ'ল কমান্ড-লাইন গ্রেডলের সাথে স্বাচ্ছন্দ্য বোধ করা।

পদক্ষেপ # 2 হ'ল গ্রেডল নির্ভরতা রিপোর্ট চালানো (উদাহরণস্বরূপ, gradle -q app:dependenciesপ্রকল্পের মূল থেকে)। এটি প্রশ্নের আপডেটে বর্ণিত ASCII ট্রি সরবরাহ করবে এবং এটি আপনাকে বিরোধী নিদর্শন সংস্করণগুলির জন্য কী জিজ্ঞাসা করছে তা সনাক্ত করতে সহায়তা করবে।

পদক্ষেপ # 3 হ'ল প্রতিস্থাপনের প্রয়োজন তা ঠিক করা। আপনি কেবল দ্বন্দ্বকে প্রতিস্থাপন করতে নির্বাচিত করেছেন ( support-annotations)। ব্যক্তিগতভাবে, আমি ভুল সংস্করণ গাছের গোড়াটি নিয়ে যেতে পারতাম ( recyclerview-v7যদিও) আমি জানি সকলের জন্যই সম্ভবত এই ক্ষেত্রে কার্যকর পদক্ষেপ না হতে পারে।

পদক্ষেপ # 4 হ'ল পদক্ষেপ # 3 এ আপনি excludeযা পছন্দ করেছেন তা অবরুদ্ধ করার নির্দেশকে যুক্ত করা:

androidTestCompile ('com.android.support.test.espresso:espresso-contrib:2.0') {
    exclude module: 'support-annotations'
}

পদক্ষেপ # 5 হ্যাক এই পরিবর্তনটি আউট পরীক্ষা করা হয়। কি করছ বলছে যে espresso-contrib হয়েছে এর 22.0.0 সংস্করণ সঙ্গে মোকাবিলা করার জন্য support-annotations। এটি কাজ করতে পারে। তা নাও পারে। এটি বিরোধের পিছনের সামঞ্জস্যের উপর নির্ভর করে। এই ক্ষেত্রে, support-annotationsএটি সম্পর্কে বেশ ভাল হওয়া উচিত।

পদক্ষেপ # 6 হ'ল আপনার পছন্দের পানীয়গুলি গ্রাস করা, এটি আপনার স্থানীয় এবং দিনের জন্য উপযুক্ত।


4
আমি ব্যবহার করেছি exclude group: 'com.android.support', module: 'support-annotations' যেহেতু আপনার সংস্করণটি "আর্গুমেন্টের ধরণের অনুমান করতে পারে না" গ্রেড থেকে সতর্কবার্তা উত্থাপন করেছে
অ্যাপল আপেল

2
কাজ করে ... com.android.support.test: রানার: 0.3, com.android.support.test: নিয়ম: 0.3 এবং com.android.support.test.espresso: এসপ্রেসো-কোর: 2.2
uudashr

পদক্ষেপ # 4 এ, আপনি কোথায় সেই অ্যান্ড্রয়েডটেষ্টকম্পাইল নির্দেশিকা যুক্ত করছেন? আমি যদি আমার অ্যাপের নির্ভরতা ব্লকে সেই সিনট্যাক্স যুক্ত করার চেষ্টা করি তবে আমি কিছু সিনট্যাক্স ত্রুটি পেয়েছি। এটি এখন যেমন লেখা হয়েছে, আপনি এটি কোথায় যুক্ত করেছেন তা সুনির্দিষ্টভাবে বলা কিছুটা শক্ত।
OYRM

1
@ ওআইআরএম: "আপনি সেই অ্যান্ড্রয়েড টেস্টকম্পাইল নির্দেশিকাটি কোথায় যুক্ত করছেন?" - এ dependencies। চিউ-কি চ্যানের এই নমুনাটি দেখুন ।
কমন্সওয়্যার

16
পদক্ষেপ # 6 এখানে মূল কী
ওডেম

146

আমি এটি সমাধান করার জন্য যা করেছি তা হ'ল আমার বিল্ড.gradle স্ক্রিপ্টের সাথে নীচের লাইনটি যুক্ত করুন

androidTestCompile 'com.android.support:support-annotations:xx.x.x'

xx.x.xআপনার অ্যাপ্লিকেশনটি যে-সমর্থন-টীকা ব্যবহার করছে তার যে কোনও সংস্করণ দিয়ে প্রতিস্থাপন করুন - এটি আপনার নির্ভরতা, বা গ্রেডল সিঙ্ক বার্তা হিসাবে প্রদর্শিত হবে: সিঙ্কে Resolved version for app (xx.x.x)কোনও সমস্যা হওয়া উচিত।


কি দারুন. আমি এটি আপগ্রেড করার জন্য করি Junitতবে সম্পূর্ণরূপে আমি এটি অন্যান্য নির্ভরতাগুলির জন্যও করতে পারি।
জ্যারেড বুরোজ

10
"প্রকৃতপক্ষে গুগল নমুনাগুলি এটি কীভাবে করে , এটি একটি মন্তব্য পড়ায়" পরীক্ষা অ্যাপ্লিকেশনটিতে সমর্থন টীকাগুলির জোর ব্যবহার, যেহেতু এটি অভ্যন্তরীণভাবে রানার মডিউল দ্বারা ব্যবহৃত হয়।
ডেসিম

এটি আমার পক্ষে সেরা উত্তর ছিল। দ্রষ্টব্য: অবশ্যই '23 .1.1 'এ আপডেট হওয়া উচিত:androidTestCompile 'com.android.support:support-annotations:23.1.1'
ডেভিড ম্যানপার্ল

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

কীভাবে এটি বিল্ড.gradle এ যুক্ত করবেন?
উবুন্টু_নুব

58

আসলে এটি এস্প্রেসো ক্রিবিবের নতুন আপডেট সংস্করণটির একটি বাগ, আপনি এই কার্যকারিতাটি উল্লেখ করতে পারেন: অ্যান্ড্রয়েড-টেস্টিং / বিল্ড.gradle

configurations.all {
    resolutionStrategy.force 'com.android.support:support-annotations:22.1.0'
}

2
এটা আমার সমস্যা ছিল। টিকিট এখানে
theblang

3
এটি একটি সতর্কতা তৈরি করে, @ রেনাননারির সমাধান আরও ভাল
ডিয়েগো পালোমার

যে কাজ করে না। আমি এখনও বিরোধের ত্রুটি androidTestCompile 'com.android.support.test:runner:0.5'
পেয়েছি

1
@ বনি - লিঙ্কটি ভাঙ্গা
মোশতাক জামিল

এটি আমার পক্ষে কাজ করেছে। আমি এই ব্লকটি "অ্যান্ড্রয়েড {টেস্টঅপশনগুলি here <এখানে>}}"
জোহরয়েলে

23

দয়া করে https://github.com/JakeWharton/u2020/blob/05a57bf43b9b61f16d32cbe8717af77cd608b0fb/build.gradle#L136-L140 দেখুন

configurations.all {
  resolutionStrategy {
    force 'com.android.support:support-annotations:23.1.1'
  }
}

এটি আমার সমস্যা সমাধান করেছে।

বিকল্পভাবে আপনি উইন্ডোতে গ্রেডলিউ চালাতে পারেন এবং ম্যাক / লিনাক্সের জন্য ./ গ্রেডলিউ এটি প্রয়োজনের সময় আপনার নির্ভরতা ডাউনলোড করবে


1
এটি আজও (2018-11-10) আমাকে সহায়তা করেছে, তবে সংস্করণ 27.1.1 এর সাথে বিরোধ এড়াতে 26.1.0 সংস্করণ সহ।
জেবি রেইনসবার্গার

8

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

androidTestCompile 'com.android.support:support-annotations:25.+'
androidTestCompile 'com.android.support:appcompat-v7:25.+'
androidTestCompile 'com.android.support:support-v4:25.+'
androidTestCompile 'com.android.support:recyclerview-v7:25.+'
androidTestCompile 'com.android.support:design:25.+'

তদতিরিক্ত, আপনি দেখতে পাচ্ছেন যে আমি নকশার নির্ভরতা যুক্ত করেছি, যা অ্যান্ড্রয়েড মেটেরিয়াল ডিজাইনের সাথে সম্পর্কিত।

আশা করি এটি সাহায্য করে =)


8

sdkversion 25 এর জন্য

     androidTestCompile 'com.android.support:support-annotations:25.2.0'

3

আপনি উইন্ডোতে গ্রেডলু চালাতে পারেন এবং ম্যাক / লিনাক্সের জন্য ./gradlew এটি যখন প্রয়োজন হয় তখন আপনার নির্ভরতা ডাউনলোড করবে।

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

সংকলন ("org.apache.maven: maven-ant-Tasks: $ {mavenAntTaskVer} ‍") group গোষ্ঠীটি বাদ দিন: 'জুনিট'}

ত্রুটি: নির্ভরতা 'জুনিট: জুনিট' এর সাথে সংঘাত। অ্যাপ্লিকেশন (3.8.1) এবং পরীক্ষার অ্যাপ্লিকেশন (4.12) এর সমাধান করা সংস্করণগুলি পৃথক। বিশদ জানতে g.co/androidstudio/app-test-app-conflict দেখুন।

এটি ছিল আমার ত্রুটি তাই সমস্যাটি সমাধানের জন্য আমি গ্রেডলাইন রেখার উপরে ব্যবহার করেছি


এটি এই জাতীয় সমস্যা সমাধানের জন্য সত্যিই ভাল উপায় বলে মনে হচ্ছে। আর উপরন্তু, এই চালানোর চেষ্টা নির্ভরতা: অ্যাপ: ./gradlew তারপর আপনি কোথা থেকে দ্বন্দ্ব পাবেন আপনার প্রকল্পের রুট ডিরেক্টরিটি অধীনে লাইন আদেশ, এটি আপনার প্রকল্পের নির্ভরতা সম্পর্কে একটি গাছ করব, আর একটি চেক সাবধানে আছে।
খোলাখুলি jorsn

2

কেবল আপনার বিল্ড.gradle ফাইলটিতে এই লাইনগুলি মুছুন:

androidTestImplementation 'com.android.support.test:runner:1.0.2'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'

এটি ঔভাবে কাজ করে না। এটি প্রকল্পে আরও ত্রুটি ঘটায়

0

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

    androidTestCompile 'com.android.support:appcompat-v7:23.4.0'
    androidTestCompile 'com.android.support:recyclerview-v7:23.4.0'
    androidTestCompile 'com.android.support:design:23.4.0'

0

আমি 26.0.0 এবং 27.1.1 এর সাথে একই সমস্যা ছিল এবং প্রকৃতপক্ষে কেবল পূর্বেরটিকে আপগ্রেড করে এটি কাজ করে।

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