java.lang.NoClassDefFoundError: এর ব্যর্থ রেজোলিউশন: লর্গ / অ্যাপাচি / HTTP / প্রোটোকল ভার্শন


324

আমি যখন এন্ড্রয়েড পি এর অ্যাপ্লিকেশন তৈরি করতে অ্যান্ড্রয়েড স্টুডিও ৩.১ ব্যবহার করি তখন আমি এ জাতীয় ত্রুটিটি পেয়েছি, এপিপি তৈরি করা যেতে পারে, তবে আমি যখন এটিকে অ্যান্ড্রয়েড পি এমুলেটরটিতে ব্যবহার করব তখন এটি ক্রাশ হয়ে তথ্য নীচে ফেলে দেবে, আরও বিশদ বিবরণটি পিকটি দেখুন ।

java.lang.NoClassDefFoundError: এর ব্যর্থ রেজোলিউশন: লর্গ / অ্যাপাচি / HTTP / প্রোটোকল ভার্শন

এখানে চিত্র বর্ণনা লিখুন

অ্যাপ্লিকেশন মডিউলের অধীনে আমার বিল্ড.gradle এর অংশটি নীচে, কেউ কি এটির সাথে মিলিত হয়? এবং কিছুটা মিষ্টি দেওয়া? অনেক ধন্যবাদ.

android {

     compileSdkVersion 'android-P'
     buildToolsVersion '28-rc1'

    useLibrary 'org.apache.http.legacy'

    //for Lambda
    compileOptions {
        targetCompatibility JavaVersion.VERSION_1_8
        sourceCompatibility JavaVersion.VERSION_1_8
    }

    packagingOptions {

        exclude 'META-INF/LICENSE'
        exclude 'META-INF/NOTICE'
    }
    defaultConfig {
        applicationId "xxx.xxx.xxx"
        minSdkVersion 17
        targetSdkVersion 27
        versionCode xxxx
        versionName "Vx.x.x"

        multiDexEnabled true


     //other setting required
        ndk {

            abiFilters 'armeabi', 'armeabi-v7a', 'armeabi-v8a', 'x86', 'x86_64', 'mips', 'mips64'

        }

উত্তর:


836

আপডেট: এটি এখন কোনও ত্রুটি বা কোনও তাত্পর্য নয়, আপনার অ্যাপ্লিকেশন যদি এপিআই লেভেল ২৮ (অ্যান্ড্রয়েড .0.০) বা তারপরে লক্ষ্য করে এবং অ্যান্ড্রয়েড ১ 16.০.০ বা তার চেয়ে কমের জন্য গুগল ম্যাপস এসডিকে ব্যবহার করে (বা যদি আপনার অ্যাপ্লিকেশন অ্যাপাচি এইচটিটিপি ব্যবহার করে তবে এটি প্রয়োজন) উত্তরাধিকার গ্রন্থাগার)। এটি এখন সরকারী দস্তাবেজের অন্তর্ভুক্ত । উদ্দেশ্যমূলক আচরণ হিসাবে পাবলিক ইস্যুটি বন্ধ করা হয়েছে ।

এটি গুগল প্লে সার্ভিস সাইডের একটি বাগ , এটি স্থির না হওয়া অবধি আপনার ট্যাগের AndroidManifest.xmlঅভ্যন্তরে এটি যুক্ত করে কাজ করতে সক্ষম হওয়া উচিত <application>:

<uses-library android:name="org.apache.http.legacy" android:required="false" />

84
এটি এখন আর কাজের মতো নয়। এটি এখন সঠিক উপায়ে এখন বিকাশকারীদের.
com/maps/docamentation/android-sdk/…

@ অ্যাডামকে, অ্যান্ড্রয়েড 9 এপিআই স্তর 28. = পি (সার্ভারসাইড থেকে কোনও বাগ নয়, তবে পি আচরণের পরিবর্তন সম্পর্কে)
ফুং

10
মানচিত্রও ব্যবহার করছেন না কেউ?
রবিন ডিজখফ

2
হ্যাঁ আপনি এপাচি এইচটিটিপি লিগ্যাসি লাইব্রেরি ব্যবহার করেন (বা আপনার নির্ভরতার কোনও একটি করে) if
আদমকে

2
আমি অ্যাপাচি এইচটিটিপি লিগ্যাসি লাইব্রেরি ব্যবহার করছি এবং এটি কেবল আমাকে বাঁচিয়েছে। ধন্যবাদ!
এরিক বি

55

এই লিঙ্কটি অ্যান্ড্রয়েড -9.0-পরিবর্তন-28 -> অ্যাপাচি এইচটিটিপি ক্লায়েন্টের অবমূল্যায়নটি আপনার অ্যান্ড্রয়েড ম্যানিফেস্ট.এক্সএমএলে নিম্নলিখিতগুলি যুক্ত করার কারণ ব্যাখ্যা করে:

<uses-library android:name="org.apache.http.legacy" android:required="false"/>

অ্যান্ড্রয়েড .0.০ সহ আমরা অ্যাপাচি এইচটিটিপি ক্লায়েন্টের জন্য সমর্থন সরিয়েছি। অ্যান্ড্রয়েড 9 দিয়ে শুরু করে, সেই লাইব্রেরিটি বুটক্লাসপাথ থেকে সরানো হয় এবং ডিফল্টরূপে অ্যাপ্লিকেশনগুলিতে উপলভ্য হয় না।


33

নিম্নলিখিত যে কোনও একটি করুন:

1- সর্বশেষ সংস্করণে প্লে-পরিষেবা-মানচিত্রের লাইব্রেরি আপডেট করুন :

com.google.android.gms:play-services-maps:16.1.0

2- বা এর <application>উপাদানগুলির মধ্যে নিম্নলিখিত ঘোষণাটি অন্তর্ভুক্ত করুন AndroidManifest.xml

<uses-library
      android:name="org.apache.http.legacy"
      android:required="false" />

3
আবার এটি অ্যান্ড্রয়েড 9 বিকাশকারীদের এবং অবশ্যই গুগলের জন্য একটি দুর্দান্ত লজ্জার বিষয়। আমি আশা করি তারা অ্যান্ড্রয়েড 9 বাস্তবায়ন এবং আচরণটি সংশোধন করেছে কারণ এতে অনেকগুলি বাগ রয়েছে। দুর্ভাগ্যক্রমে, গুগল এই বাগগুলি, আচরণের পরিবর্তনগুলিকে কল করার জন্য জোর দিয়েছিল!
সাইদ খালাফিনেজাদ

20

আপনি যদি লেগ্যাসি জারের সাথে অ্যান্ড্রয়েড 9.0 ব্যবহার করেন তবে আপনার ব্যবহারের চেয়ে বেশি। আপনার মেইনফেষ্ট ফাইলটিতে।

<uses-library android:name="org.apache.http.legacy" android:required="false"/>


17

অ্যান্ড্রয়েড 9.0 পাইয়ে নিখুঁতভাবে org.apache.http.legacy চালানোর জন্য একটি এক্সএমএল ফাইল তৈরি করুন res/xml/network_security_config.xml

<?xml version="1.0" encoding="utf-8"?>
    <network-security-config>
      <base-config cleartextTrafficPermitted="true">
       <trust-anchors>
        <certificates src="system" />
       </trust-anchors>
      </base-config>
    </network-security-config>

এবং আপনার অ্যান্ড্রয়েড ম্যানিফেস্ট.এক্সএমএলে 2 টি ট্যাগ ট্যাগ যুক্ত করুন

অ্যান্ড্রয়েড: নেটওয়ার্কসিকিউরিটি কনফিগ = "@ এক্সএমএল / নেটওয়ার্ক_সিকিউরিটি_কনফিগ" অ্যান্ড্রয়েড: নাম = "org.apache.http.legacy"

<?xml version="1.0" encoding="utf-8"?>
 <manifest......>
  <application android:networkSecurityConfig="@xml/network_security_config">
   <activity..../> 
   ......
   ......
 <uses-library
        android:name="org.apache.http.legacy"
        android:required="false"/>
</application>

এছাড়াও যোগ useLibrary 'org.apache.http.legacy'আপনার অ্যাপ বিল্ড gradle মধ্যে

android {
compileSdkVersion 28
defaultConfig {
    applicationId "your application id"
    minSdkVersion 15
    targetSdkVersion 28
    versionCode 1
    versionName "1.0"
    testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    useLibrary 'org.apache.http.legacy'
}

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

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

16

আপনার অ্যান্ড্রয়েড ম্যানিফেস্ট.এক্সএমএলে এই দ্বি-লাইন যুক্ত করুন।

android:usesCleartextTraffic="true"  
<uses-library android:name="org.apache.http.legacy" android:required="false"/>

কোড নীচে এটি দেখুন

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher"
        android:supportsRtl="true"
        android:usesCleartextTraffic="true"
        android:theme="@style/AppTheme"
        tools:ignore="AllowBackup,GoogleAppIndexingWarning">
        <activity android:name=".activity.SplashActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

        <uses-library android:name="org.apache.http.legacy" android:required="false"/>
    </application>


9

আপনি যদি ব্যবহার করছেন com.google.android.gms:play-services-maps:16.0.0বা নীচে এবং আপনার অ্যাপ্লিকেশনটি API এর স্তরের 28 (অ্যান্ড্রয়েড 9.0) বা তত্সহ উপরে লক্ষ্য করে চলেছে তবে আপনাকে অবশ্যই AndroidManifest.xML এর উপাদানটির মধ্যে নিম্নলিখিত ঘোষণাটি অন্তর্ভুক্ত করতে হবে

<uses-library
      android:name="org.apache.http.legacy"
      android:required="false" />

এই লিঙ্কটি দেখুন - https://developers.google.com/maps/docamentation/android-sdk/config#specif_requirement_for_apache_http_legacy_library


8

যদি আপনি com.google.android.gms: play-পরিষেবাদি-মানচিত্র: ১.0.০.০ বা তার নিচে ব্যবহার করছেন এবং আপনার অ্যাপ্লিকেশনটি এপিআই স্তর ২৮ (অ্যান্ড্রয়েড 9.০) বা তারপরের উপরে লক্ষ্য করে চলেছে, আপনার অবশ্যই অ্যান্ড্রয়েড ম্যানিফেস্টের উপাদানটির মধ্যে নিম্নলিখিত ঘোষণাকে অন্তর্ভুক্ত করতে হবে। XML।

<uses-library
      android:name="org.apache.http.legacy"
      android:required="false" />

আপনি যদি com.google.android.gms: play-পরিষেবাদি-মানচিত্র: 16.1.0 ব্যবহার করছেন তবে এটি আপনার জন্য পরিচালিত হয় এবং যদি আপনার অ্যাপ্লিকেশন একটি নিম্ন API স্তরের লক্ষ্যবস্তু করে তবে প্রয়োজনীয় নয় is


5

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

java.lang.NoClassDefFoundError:failed resolution of :Lorg/apache/http/ProtocolVersion

androidManLive.xML এর মধ্যে যুক্ত করে এটি ঠিক করুন

<uses-library
  android:name="org.apache.http.legacy"
  android:required="false" />

আমি আপনার সমাধানটি ব্যবহার করেছি এবং এটি কার্যকর হয়েছে।
পিইকজোনকা

1

এই এসও উত্তর অনুসারে , এটি এমন একটি এডাব্লুএস এসডিকে বাগের কারণে ঘটে যা এসডিকে ২.6.৩০ সংস্করণে সমাধান করা দেখা যায় , সুতরাং সংস্করণটিকে আরও নতুন করে আপডেট করা আপনাকে সমস্যার সমাধান করতে সহায়তা করতে পারে।

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