অ্যান্ড্রয়েড গ্রেডেল অ্যাপাচি এইচটিপিপিপ্লায়েন্টের অস্তিত্ব নেই?


263

আমি একটি ইন্টেলিজিজ প্রকল্পকে অ্যান্ড্রয়েড স্টুডিওর গ্রেডল সিস্টেমে রূপান্তরিত করার চেষ্টা করছি কিন্তু আমি অ্যাপাচি এইচটিপিপিলেয়েন্ট দিয়ে ত্রুটিগুলিতে চলেছি? আমি কি কিছু মিস করছি, আমি যে ত্রুটিগুলি পাচ্ছি সেগুলি নিম্নরূপ:

Error:(10, 30) error: package org.apache.http.client does not exist
Error:(11, 30) error: package org.apache.http.client does not exist
Error:(12, 37) error: package org.apache.http.client.entity does not exist
Error:(13, 38) error: package org.apache.http.client.methods does not exist
Error:(14, 38) error: package org.apache.http.client.methods does not exist
Error:(15, 38) error: package org.apache.http.client.methods does not exist
Error:(16, 35) error: package org.apache.http.impl.client does not exist
Error:(134, 33) error: cannot find symbol class HttpUriRequest
Error:(164, 39) error: cannot find symbol class HttpUriRequest
Error:(106, 17) error: cannot find symbol class HttpGet
Error:(106, 39) error: cannot find symbol class HttpGet
Error:(117, 17) error: cannot find symbol class HttpPost
Error:(117, 40) error: cannot find symbol class HttpPost
Error:(125, 43) error: cannot find symbol class UrlEncodedFormEntity
Error:(135, 9) error: cannot find symbol class HttpClient
Error:(135, 33) error: cannot find symbol class DefaultHttpClient
Error:(155, 18) error: cannot find symbol class ClientProtocolException
Error:(165, 9) error: cannot find symbol class HttpClient
Error:(165, 33) error: cannot find symbol class DefaultHttpClient
Error:(185, 18) error: cannot find symbol class ClientProtocolException

আমার বিল্ড.gradle ফাইলের নিম্নলিখিত নির্ভরতা রয়েছে:

dependencies {
    compile 'com.google.android.gms:play-services:+'
    compile 'org.apache.httpcomponents:httpclient:4.2.6'
    compile 'org.apache.httpcomponents:httpmime:4.2.6'
    compile files('libs/core.jar')
}

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

উত্তর:


39

আমি আপনাকে পরামর্শ দিচ্ছি যে আপনি হ্রাস করা অ্যাপাচি এইচটিটিপিপ্লিনেন্টকে নতুন এইচটিটিপিআরএল সংযোগের সাথে প্রতিস্থাপন করুন।

এটি একটি পরিচ্ছন্ন সমাধান, এটি স্থানান্তরিত করা বেশ সহজ এবং সাধারণত হ্যাক / প্যাচ / ওয়ার্কআরউন্ডের চেষ্টা করার চেয়ে সর্বশেষতম এসডিকে পরিবর্তনগুলি স্থির করা ভাল: আপনি সাধারণত পরে আফসোস করেন :)

ধাপ 1

HttpGet httpGet = new HttpGet(url);

হয়ে:

URL urlObj = new URL(url);

ধাপ ২

HttpClient httpClient = new DefaultHttpClient();
HttpContext localContext = new BasicHttpContext();
HttpResponse response = httpClient.execute(httpGet, localContext);
InputStream is = response.getEntity().getContent();

হয়ে:

HttpURLConnection urlConnection = (HttpURLConnection) urlObj.openConnection();
InputStream is = urlConnection.getInputStream();

পদক্ষেপ 2 বিস

int status = response.getStatusLine().getStatusCode();

হয়ে:

int status = urlConnection.getResponseCode();

আরে @ বেঞ্জামিন, পুট পদ্ধতিতে ইউআরএল কীভাবে প্রেরণ করবেন?
ধর্ম সাঁই সেরাপু

@ ট্রিকসোলিউশন দুঃখিত, কোনও ধারণা নেই, এখনও পুট পদ্ধতি ব্যবহার করেননি।
বেনিয়ামিন পিট

521

যদি আপনি টার্গেট এসডিকে 23 হিসাবে ব্যবহার করেন তবে আপনার বিল্ডড্র্যাডলে কোড নীচে যুক্ত করুন

android{
    compileSdkVersion 23
    buildToolsVersion '23.0.1'
    useLibrary  'org.apache.http.legacy'
}

এবং আপনার বিল্ডস্ক্রিপ্ট এ পরিবর্তন করুন

classpath 'com.android.tools.build:gradle:1.3.0' 

আরও তথ্যের জন্য এই লিঙ্কটি অনুসরণ করুন


7
আপনার বিল্ডস্ক্রিপ্টটি ক্লাসপথে পরিবর্তন করুন 'com.android.tools.build:gradle
प्रशंसा.3.0

3
ইতিমধ্যে ছিল 1.3.1। এখনও অ্যান্ড্রয়েড স্টুডিওতে ক্লাস সমাধান করতে পারে না:Error:(14, 23) error: package org.apache.http does not exist
হেনরিক ডি স্যুসা

2
অ্যান্ড্রয়েড স্টুডিও 1.4 বিটা 2
জিনু

2
এবং যদি আপনি অ্যাপাচি HTTP উপাদানগুলির সর্বশেষতম সংস্করণটি ব্যবহার করতে চান?
রাসেলহফ

2
থ্যাঙ্কস জিনু, অ্যান্ড্রয়েড স্টুডিওটি 1.3 থেকে উপরের সংস্করণে আপডেট করা আবশ্যক। এটি কাজ করে পেয়েছেন
mithil1501

94

আমার এই সমস্যাটি হয়েছিল এবং তারপরে এই পৃষ্ঠাগুলি খুঁজে পেয়েছি: এখানে আপনি দেখতে পাচ্ছেন যে অ্যাপাচি লাইব্রেরিটি অবচিত করা হয়েছে, তবে এটি সরানো হয়নি, সুতরাং এটি কাজ করা উচিত। এটা হয় না।

দেখুন

এবং এখানে আপনি কীভাবে আপনার প্রকল্পে অ্যাপাচি লাইব্রেরি অন্তর্ভুক্ত করবেন তা দেখতে পাবেন

দেখুন

দ্বিতীয় লিঙ্কে প্রস্তাবিত হিসাবে আমার বিল্ড.gradle ফাইলটিতে অনুসরণ করে আমি সমস্যার সমাধান করেছি।

android {
    useLibrary 'org.apache.http.legacy'
}

তবে এটি কেবল তখনই কাজ করে যদি আপনি গ্রেড 1.3.0-বিটা 2 বা ততোধিক গ্রেড ব্যবহার করছেন, তাই আপনি যদি কম সংস্করণে থাকেন তবে আপনাকে এটি বিল্ডস্ক্রিপ্ট নির্ভরতাগুলিতে যুক্ত করতে হবে:

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

আশাকরি এটা সাহায্য করবে.


আমার জন্য এটি ব্যর্থ হয়েছিল: ত্রুটি: কার্যের জন্য কার্যকর করা ব্যর্থ ': xenoAmp: মার্জডিজবুজাভা রিসোর্সেস'। > এল এর জন্য সম্প্রসারণ ফোল্ডার নির্ধারণ করা যায় না: j প্রজেকটি \ জেনোঅ্যাম্পজিট \ জেনোঅ্যাম্প \ বিল্ড \ ইন্টারমিডিয়েটস \ প্যাকেজড জার্স জাভা রিসোর্সস \ ডিবাগ \ httpclient-android-4.3.5.1.jar1037172435 \ মাইটা-আইএনএফ \ লিক্সেনএক্সএক্সপিএমপিএক্সপিএমপি \ ইন্টারমিডিয়েটস \ সোর্স ফোল্ডার জাভা রিসোর্সস \ ডিবাগ, এল: j প্রজেক্টি \ জেনোঅ্যাম্পগিট \ জেনোঅ্যাম্প \ বিল্ড \ ইন্টারমিডিয়েটস \ প্যাকেজড
জারজাভা রিসোর্সস

@ এসুকুক হাই, আপনি কি এই ত্রুটির সমাধান খুঁজে পেয়েছেন?
সেককিকিউ

2
দুর্ভাগ্যক্রমে সমাধানটি ছিল বর্তমান সর্বোচ্চ এপিআই-তে টার্গেট পরিবর্তন করা এবং এটি প্রচুর জিনিসকে ভেঙে দিয়েছে! তারপরে এই প্রশ্নের অন্য কোথাও বর্ণিত হিসাবে আমাকে "ইউজলিবারি", "ক্লাসপাথ" প্লাস রেফারেন্স লিগ্যাসি অ্যাপাচি লাইব যুক্ত করতে হয়েছিল। এবং এটি পুনরায় সংকলনযোগ্য হওয়ার পরে আমি ঠিক করেছিলাম আপাচি কোড পুরোপুরি খাঁজ করে এগুলি সমস্ত ইউআরএল সংযোগের সাথে প্রতিস্থাপন করব যা আমার ধারণা থেকে সহজ ছিল।
ssuukk

সুসুকের সাথে একমত এই উত্তরগুলির কোনওটিই আমার পক্ষে কাজ করে নি তাই আমি অ্যাপাচি লাইব্রেরিগুলি থেকেও মুক্তি পেলাম। আমি অ্যান্ড্রয়েড বিকাশে বেশ নতুন কিন্তু এটি সোজা ছিল।
81

আমারও একই সমস্যা ছিল এবং আমি ব্যবহারের সাথে 'লাইব্রেরি' org.apache.http.legacy 'ঠিক করেছিলাম যে মিলোস কীভাবে বলেছিল ... তবে আপনার ইস্যুতে @ এসসুকের জন্য আপনি এটিকে সর্বদা যুক্ত করার চেষ্টা করতে পারেন: অ্যান্ড্রয়েড {প্যাকেজিংঅপশনস {' মেটা-আইএনএফ / লিসেনসিকে বাদ দিন: 'মেটা-আইএনএফ / নীতিমালা' বাদ 'মেটা-আইএনএফ / বিজ্ঞপ্তি' বাদ 'মেটা-আইএনএফ / বিজ্ঞপ্তি। টেক্সট' বাদ 'মেটা-আইএনএফ / ম্যানিফেষ্ট'}}
আলেকজিক্যানি

53

এই লাইব্রেরি যুক্ত করুন build.gradle

 android {
      useLibrary 'org.apache.http.legacy'
 }

কেউ এই ব্যাখ্যা করতে পারেন? কেন এটি কাজ করে? নির্ভরতা যুক্ত করা বাদ দিয়ে আমাদের কেন এই লাইনটি যুক্ত করতে হবে?
ড্যান

2
@ ড্যান কারণ এটি org.apache.http লাইব্রেরি 23 সংস্করণ সহ সরানো হয়েছিল
এলটিয়ার

স্পষ্ট করার জন্য, এটি মূলের মধ্যে যায় না, build.gradleবরং আপনি যে মডিউল ফোল্ডারটি তৈরি করছেন তার মধ্যে (যেমন "অ্যাপ্লিকেশন")
hamx0r

37

ফোল্ডারে org.apache.http.legacy.jarযা আছে তা অনুলিপি করুনAndroid/Sdk/platforms/android-23/optionalapp/libs

এবং অ্যাপ্লিকেশন ফাইলটিতে এই লাইনটি যুক্ত করেছে

compile files('libs/org.apache.http.legacy.jar')

তবে আপনি যদি আরও জার লাইব্রেরি ব্যবহার করেন তবে আপনি এইভাবে ব্যবহার করতে পারেন

compile fileTree(dir: 'libs', include: ['*.jar'])

2
আমার আর একটি প্রকল্পে এটিই একমাত্র উত্তর হিসাবে প্রমাণিত যে এটি কাজ করে তাই +1 এবং ধন্যবাদ।
এপাক

কেন এই উত্তর?
ডিসিবল

1
আমার জন্যও একই. কারও এই উত্তরটি এখন গ্রহণ করা পরিবর্তে গ্রহণ করা উচিত।
ইভান ফাজানীউক

এটি প্রতিরোধের সর্বনিম্ন পথ, নিশ্চিত নয় যে আমি ডাউন-গ্রেড গ্রেড করতে চাই। এটা আমার জন্য সূক্ষ্ম সংকলন।
এড শালীন

ধন্যবাদ! এটি গ্রেড-পরীক্ষামূলক 0.6.0-alpha5 প্লাগইন নিয়ে কাজ করে। পরীক্ষামূলক প্লাগইনে "ইউজলিবারি" বিদ্যমান বলে মনে হচ্ছে না।
monkey0506

14

মূলত আপনাকে যা করতে হবে তা হ'ল:

useLibrary  'org.apache.http.legacy'

আপনার build.gradleফাইল।


9

আমি একই ইস্যু মধ্যে দৌড়ে। ড্যানিয়েল নউজেন্টের উত্তর কিছুটা সহায়তা করেছিল (তার পরামর্শ অনুসরণ করার পরেও HttpResponseপাওয়া গেল - তবে এটি HttpClientএখনও নিখোঁজ ছিল)।

সুতরাং এটিই আমার জন্য এটি স্থির করে দিয়েছে:

  1. (যদি ইতিমধ্যে সম্পন্ন না হয়, পূর্ববর্তী আমদানি-বিবৃতিগুলি প্রশংসা করুন)
  2. পরিদর্শন http://hc.apache.org/downloads.cgi
  3. 4.5.1.zipবাইনারি বিভাগ থেকে পেতে
  4. এটা আনজিপ পেস্ট httpcore-4.4.3& httpclient-4.5.1.jarমধ্যে project/libsফোল্ডারের
  5. পাত্রে ডান ক্লিক করুন এবং লাইব্রেরি হিসাবে যুক্ত চয়ন করুন

আশা করি এটা সাহায্য করবে.


9

আমি অনুরূপ সমস্যার মধ্যে দৌড়েছি, আপনি সম্ভবত এটি একটি অনুরূপ পদ্ধতি ব্যবহার করে কাজ করতে সক্ষম হতে পারেন।

প্রথমে, আপনার বর্তমান কনফিগারেশনে সঙ্গে এই চেষ্টা করুন, বাদ httpclientথেকে httpmime:

dependencies {
    compile 'com.google.android.gms:play-services:+'
    compile ('org.apache.httpcomponents:httpmime:4.2.6'){
            exclude module: 'httpclient'
        }
    compile 'org.apache.httpcomponents:httpclient:4.2.6'
} 

আমার ক্ষেত্রে, আমি নীচের জারগুলি ব্যবহার করে এটি ঠিক করেছি:

তারপরে, বিল্ড.gradle এ বাদ httpclientদিয়ে httpmime:

dependencies {
    compile 'com.google.android.gms:play-services:+'
    compile('org.apache.httpcomponents:httpmime:4.3.5') {
        exclude module: 'httpclient'
    }
    compile 'org.apache.httpcomponents:httpclient-android:4.3.5.1'
}

আপনার উত্তরের জন্য ধন্যবাদ, আমি ভীত না হলেও আমার পক্ষে কাজ করে নি :(
এপ্যাক

@ এটি অদ্ভুত, দ্বিতীয় বিকল্পটি আমার পক্ষে কাজ করেছিল। আপনার পুরানো জার ফাইলগুলি দ্বিতীয় বিকল্পটির জন্য মুছে ফেলা হয়েছে তা নিশ্চিত করুন।
ড্যানিয়েল নজেন্ট

কিসের libs/core.jarজন্য?
ইগোরগানাপলস্কি

7

জিনু এবং ড্যানিয়েল দ্বারা নিখুঁত উত্তর

এটি যুক্ত করে আমি এটি ব্যবহার করে সমস্যার সমাধান করেছি, যদি আপনার সংকলনএসডিপি ভার্সনটি 19 হয় (আমার ক্ষেত্রে)

compile ('org.apache.httpcomponents:httpmime:4.3'){
    exclude group: 'org.apache.httpcomponents', module: 'httpclient'
}
compile ('org.apache.httpcomponents:httpcore:4.4.1'){
    exclude group: 'org.apache.httpcomponents', module: 'httpclient'
}
compile 'commons-io:commons-io:1.3.2'

অন্যথায় যদি আপনার কম্পাইলএসডিপি ভার্সন 23 হয় তবে ব্যবহার করুন

android {
useLibrary 'org.apache.http.legacy'
packagingOptions {
    exclude 'META-INF/DEPENDENCIES'
    exclude 'META-INF/NOTICE'
    exclude 'META-INF/LICENSE'
    exclude 'META-INF/LICENSE.txt'
    exclude 'META-INF/NOTICE.txt'
    }
}

5

এটি আমিই করেছি এবং এটি আমার পক্ষে কাজ করে।

পদক্ষেপ 1: এটি বিল্ড.গ্রেডে যোগ করুন (মডিউল: অ্যাপ)

compile 'org.jbundle.util.osgi.wrapped:org.jbundle.util.osgi.wrapped.org.apache.http.client:4.1.2'

পদক্ষেপ 2: প্রকল্প সিঙ্ক করুন এবং সম্পন্ন হয়েছে।


ভোট কমিয়ে দেওয়ার কোনও কারণ?
NOT_A_PROGRAMMER

এটি ত্রুটির সাথে সমাধান করতে ব্যর্থ হয়েছে "সমাধান করতে ব্যর্থ: org.jbundle.util.osgi.wraped: org.jbundle.util.osgi.wraped.org.apache.http.cli: ent এনট: 4.1.2"। আমি পরীক্ষামূলক গ্রেড 0.6.0-বিটা ব্যবহার করছি। আপনি কি এটা ধরতে পেরেছেন ?
RoFF

1

স্টক অ্যান্ড্রয়েডে সরবরাহিত অ্যাপাচি এইচটিটিপি ক্লায়েন্টের সংস্করণটি খুব পুরানো

গুগল অ্যান্ড্রয়েড ১.০ অ্যাপাচি এইচটিপিপ্লিনেন্টের প্রাক-বিটা স্ন্যাপশট সহ প্রকাশিত হয়েছিল। প্রথম অ্যান্ড্রয়েড রিলিজের সাথে মিলে যাওয়ার জন্য অ্যাপাচি এইচটিপিপ্লায়েন্ট ৪.০ এপিআইগুলিকে অকালে হিমশীতল করতে হয়েছিল, যদিও অনেকগুলি ইন্টারফেস এবং অভ্যন্তরীণ কাঠামো এখনও পুরোপুরি কাজ করা হয়নি। অ্যাপাচি এইচটিটিপিপ্লায়েন্ট ৪.০ প্রকল্পটি পরিপক্ক হওয়ার সাথে সাথে গুগল তাদের কোড ট্রিতে সর্বশেষ কোডের উন্নতি যুক্ত করবে বলে আশা করেছিল। দুর্ভাগ্যক্রমে এটি ঘটেনি।

আপনি যখন পুরানো অবজ্ঞাত লাইব্রেরিটি ওয়ার্কআউন্ডের মাধ্যমে ব্যবহার করতে পারেনuseLibrary 'org.apache.http.legacy' (@ জিনু এবং অন্যরা প্রস্তাবিত), আপনাকে সত্যই বুলেটটি কামড়তে হবে এবং অন্য কোনও কিছুতে আপডেট করতে হবে, উদাহরণস্বরূপ নেটিভ অ্যান্ড্রয়েড HttpUrlConnection, বা যদি এটি আপনার চাহিদা পূরণ না করে, আপনি OkHttp লাইব্রেরিটি ব্যবহার করতে পারেন , যা কি HttpUrlConnectionহয় অভ্যন্তরীণভাবে উপর ভিত্তি করে যাহাই হউক না কেন।

OkHttp আসলে একটি সামঞ্জস্যতা স্তর আছে যা অ্যাপাচি ক্লায়েন্টের মতো একই এপিআই ব্যবহার করে যদিও তারা একই বৈশিষ্ট্যগুলি সমস্ত প্রয়োগ করে না , তাই আপনার মাইলেজটি ভিন্ন হতে পারে।

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


1

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

প্রথমে আমি "লাইব্রেরি" ফোল্ডারটি ডি: \ ব্যবহারকারীদের \ ইম্রে \ অ্যাপডাটা \ লোকাল \ অ্যান্ড্রয়েড \ এসডিকে 1 \ অতিরিক্তগুলি \ গুগল \ প্লে-ফাইলিং, ফাইল, নতুন, আমদানি মডিউলে গিয়ে "লাইব্রেরি" ফোল্ডারে নেভিগেট করে আমদানি করেছিলাম। আপনি যদি এসডিকে ম্যানেজারটি খোলেন এবং পপআপ স্ক্রিনের নীচে "স্ট্যান্ডলোন এসডিকে ম্যানেজার" এ ক্লিক করুন, আপনি নীচে নীচে "অতিরিক্ত" ফোল্ডারের উপরে আপনার পয়েন্টারটি ঘোরাতে পারেন এবং ছোট হলুদ তথ্য আপনাকে বলবে যে আপনি কোথায় পাবেন আপনার প্যাকেজটি আমদানি করতে হবে।

এটি হয়ে গেলে, "প্রকল্প" দিয়ে বাম দিকের "লাইব্রেরি" বিভাগে যান এবং এর মধ্যে "অ্যান্ড্রয়েড" ট্যাবটি খুলুন। লাইব্রেরির জাভা বিভাগটি খুলুন এবং APKExsionsionPolicy ক্লাসটি খুলুন। আপনার যদি ত্রুটি থাকে এবং org.apache.http.NameValuePair এবং আমদানি org.apache.http.client.utils.URLEncodedUtils ফ্যাকাশে ধূসর হয় তবে বিল্ড.gradle (প্রকল্প: যাই হোক না কেন) খুলুন এবং "বিল্ডস্ক্রিপ্ট" এ নিশ্চিত হন "নির্ভরতা" এর অধীনে আপনার "ক্লাসপথ" com.android.tools.build:gradleuthor.5.5 "অন্তর্ভুক্ত রয়েছে। আপনার ক্ষেত্রে 1.5.0 আলাদা হতে পারে। আমার ধারণা এটি আপনার স্টুডিও সংস্করণের উপর নির্ভর করে। খনিটি ২.১.২। আপনার যদি নতুন হয় তবে আপনাকে নম্বরগুলি আপডেট করার জন্য মনে করিয়ে দেওয়া হবে।

এর পরে, "বিল্ড.gradle (মডিউল: গ্রন্থাগার) এ যান এবং" অ্যান্ড্রয়েড "বিভাগে" ইউজলিবারি 'org.apache.http.legacy' অন্তর্ভুক্ত করুন। সিঙ্ক এখন (আর / এইচ শীর্ষ কোণে) দেওয়া উচিত। এটা কর.

যদি আপনি আরও ত্রুটি বার্তা পান (তবে আমি এটি জানি না কারণ আমি এটি অন্যভাবে করেছি), অ্যাপাচি ফাইলগুলি আপনার প্রকল্প থেকে হারিয়ে যেতে পারে, কারণ অ্যাপাচি আর সমর্থিত নয় not সি / ডি এ তাদের সন্ধান করুন: ব্যবহারকারী / আপনার নাম / অ্যাপডেটা / স্থানীয় / অ্যান্ড্রয়েড / এসডিকে / প্ল্যাটফর্মগুলি / অ্যান্ড্রয়েড -23 / alচ্ছিক এবং এটিকে আপনার প্রকল্প / অ্যাপ / লিবস ফোল্ডারে অনুলিপি / আটকান। আপনার সেখানে একটি jচ্ছিক.জসন এবং একটি org.apache.http.legacy.jar ফাইল থাকা উচিত। আপনি অ্যাপাচি এর ওয়েবসাইটে গিয়ে এবং নতুন সংস্করণটি ডাউনলোড করতে ভাল হতে পারেন: http://hc.apache.org/downloads.cgi আপনি যে কোনও জায়গায় এটি আনজিপ করুন, এটি খুলুন, "লিবিবে" যান, httpclient-4.5.1 অনুলিপি করুন .jar ফাইলটি এবং এর সাথে org.apache.http.legacy.jar ফাইলটি প্রতিস্থাপন করুন।

আপনার প্রকল্পের সিঙ্ক এবং পুনর্নির্মাণ / পরিষ্কার করুন এবং এটি যাওয়া ভাল।

সেক্ষেত্রে আপনার টার্মিনালটি (অ্যান্ড্রয়েড স্টুডিওর এল / এইচ নীচে) খুলুন এবং "গ্রেডলিউ ক্লিন" টাইপ করুন। এটি কয়েকটি জিনিস ইনস্টল করবে। এটি হয়ে গেলে, "গ্রেডলু এসেম্বল" টাইপ করুন। এটি শেষ হতে কয়েক মিনিট সময় লাগবে, তবে আপনার যদি অবশ্যই কিছু থাকে তবে এটি আপনাকে ত্রুটিগুলি দেবে। আপনি যদি টার্মিনালে কোনও কিছু টাইপ করতে না পারেন, লঞ্চ কমান্ড প্রম্পট (উইন্ডোজ বোতাম + আর), সেমিড টাইপ করুন, ঠিক আছে চাপুন, ছোট কালো পপআপ স্ক্রিনের শিরোনামটিতে ডান ক্লিক করুন (সি: I উইন্ডোস \ সিস্টেম 32 \ সেমিডি.এক্সে) , বৈশিষ্ট্যসমূহ, বিকল্পগুলি উইন্ডোটির নীচে পরীক্ষা করে দেখুন যে "লিগ্যাসি কনসোল ব্যবহার করুন" টিপানো হয়েছে। এস্টুডিও পুনরায় চালু করুন।

শুভকামনা!


1

উপরের উত্তরগুলির মধ্যে আমার পক্ষে সম্পূর্ণরূপে কাজ না করায় আমাকে পোস্ট করতে হয়েছিল।

আমি অ্যান্ড্রয়েড স্টুডিও ব্যবহার করছি

classpath 'com.android.tools.build:gradle:1.5.0'

compileSdkVersion 23
buildToolsVersion "23.0.3"

পদক্ষেপ 1: সর্বশেষতম জার ফাইলটি ডাউনলোড করুন ( http://www-eu.apache.org/dist//httpcomponents/httpclient/binary/httpcompferences-client-4.5.5.2-bin.zip )

পদক্ষেপ 2: অনুলিপি। জার ফাইলটি আপনার মডিউলে libs ফোল্ডারে (ইতিমধ্যে উপস্থিত না থাকলে তৈরি করুন) পেস্ট করুন (অ্যাপ্লিকেশন বা গ্রন্থাগার হতে পারে)

পদক্ষেপ 3: পাত্রে ডান ক্লিক করুন এবং "পাঠাগার হিসাবে যুক্ত করুন"। এটি স্বয়ংক্রিয়ভাবে আপনার মডিউলের গ্রেড ফাইলটিতে নির্ভরতা হিসাবে জার ফাইলটি যুক্ত করবে

পদক্ষেপ 4: এখন স্বয়ংক্রিয়ভাবে আপনার সমস্যার সমাধান হয়ে যাবে তবে আপনি যদি আপনার অ্যাপ্লিকেশনটিতে অগ্রসর হন তবে এটি আপনাকে সদৃশ শ্রেণীর ফাইলগুলি সম্পর্কে সতর্কতা দেবে এবং আপনাকে তৈরি করতে দেবে না। এটি একটি ত্রুটিযুক্ত ত্রুটি এবং আপনার অগ্রগতি নিয়ম অনুসরণ করতে হবে

-dontwarn org.apache.commons.**
-keep class org.apache.http.** { *; }
-dontwarn org.apache.http.**

শুভকামনা!


0

আমার ক্ষেত্রে, আমি আমার অ্যান্ড্রয়েড প্রকল্পে আমার একটি গ্রন্থাগার আপডেট করেছি।

আমি আমার ক্যাশে স্টোরেজ সমাধান হিসাবে জলাধার ব্যবহার করছি: https://github.com/anupcowkur/Reservoir

আমি থেকে গিয়েছিলাম:

compile 'com.anupcowkur:reservoir:2.1'

প্রতি:

compile 'com.anupcowkur:reservoir:3.1.0'

গ্রন্থাগারের লেখক অবশ্যই রেপো থেকে কমন্স-আইও লাইব্রেরিটি সরিয়ে ফেলেছে যাতে আমার অ্যাপ্লিকেশন আর কাজ করে না।

এটিকে গ্রেডের মধ্যে যুক্ত করে আমি ম্যানুয়ালি কমন্স-আইও অন্তর্ভুক্ত করতে হয়েছিল:

compile 'commons-io:commons-io:2.5'

https://mvnrepository.com/artifact/commons-io/commons-io/2.5


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