ত্রুটির কারণ কী "ডিভাইস x86 সমর্থন করে তবে APK কেবলমাত্র আরমেবি-ভি 7 এ সমর্থন করে"


90

আমি গিটহাব থেকে কিছু প্রকল্প পরীক্ষা করে অ্যান্ড্রয়েড স্টুডিওতে ঘুরে বেড়াচ্ছি এবং যখন আমি এপিকে অনুকরণ করার চেষ্টা করি তখন এটি আমাকে এমুলেটর চয়ন করতে দেয় না।

এটি আমাকে বলে:

ডিভাইস x86 সমর্থন করে তবে APK কেবলমাত্র আরমেবি-ভি 7a সমর্থন করে

কেন এটা এই কাজ করে?


আপনি কোন এভিডি ব্যবহার করেছেন? কি সিস্টেম ইমেজ? কি গিটহাব প্রকল্প?
ওয়ান ক্রিকেটার

অন্য কথায়, ইন্টেল x86 চিত্রগুলি এআরএম কোড চালাচ্ছে না।
ওয়ান ক্রিকেটার


আমি একটি Nexus 10 চলমান অ্যান্ড্রয়েড 5.1
আলেকজান্ডার ইবাররা

ঠিক আছে, এবং আপনি কি এআরএম ইবি ভি 7 সিস্টেম চিত্র বা একটি ইন্টেল অ্যাটম x86 চিত্র ব্যবহার করেছেন? আপনি কী ইনস্টল করেছেন তা আপনার এসডিকে পরিচালককে পরীক্ষা করে দেখুন।
ওয়ান ক্রিকেটার

উত্তর:


85

আমার একই সমস্যা ছিল, আমি মডিউল: অ্যাপ্লিকেশন থেকে বিল্ড . gradle চেকআউট করি । দেখা যাচ্ছে যে এরকম একটি কনফিগারেশন রয়েছে:

    ndk {
        abiFilters "armeabi-v7a", "x86"
    }

যখন আমি সমস্ত মন্তব্য করেছি, সবকিছু ঠিকঠাক কাজ করেছে।

আমি রিএ্যাক্ট নেটিভ অ্যান্ড্রয়েড প্রকল্পটি মোকাবেলা করার চেষ্টা করছিলাম


4
আমি মনে করি আপনি বিল্ড.gradle বোঝাচ্ছেন;)
রায়ান জেমস

4
আমার একই সমস্যা ছিল এবং আমার জন্য "x86" স্রেফ অনুপস্থিত ছিল
থমাস

4
এটি আমার পক্ষে কাজ করেছে - তবে আমাকে যা করতে হয়েছিল তা হ'ল আমার আসল ডিভাইসে ডিবাগের অনুমতি দেওয়া এবং আমি আবার এই লাইনটিকে অসুবিধে করতে পারি।
বুমার রজার্স

কোন বিভাগে আমি এনডিকে লাগাব?
ümrüm Çetin

জাভা / কোটলিনে আমার পক্ষে কাজ করেনি, এটি তৈরি করে তবে অ্যাপ ক্রাশ হয়।
মোজিলা_ফায়ারফক্স

77

ইউএসবি ডিবাগিং বন্ধ করুন এবং এটিকে হার্ডওয়্যার ডিভাইসে ফিরিয়ে দিন।


10
এই মন্তব্যগুলি আমি সাধারণত হ্রাস করব, কিন্তু বাস্তবে, এটি কার্যকর হয়!
আহমেদ হেগজি

4
এটি কাজ করে কারণ Allow computer to connect to this deviceপ্রম্পটটি প্রথমবার প্রদর্শিত হয়নি, তবে দ্বিতীয়বার করেছে।
কাইল Clegg

এটি গিটিহাব থেকে একটি নতুন প্রকল্প শুরু করার সময় চিহ্নিত "কম্পিউটারের জন্য মনে আছে" চিহ্নিত একটি কম্পিউটারে এটি কাজ করেছিল।
জেড। ব্যাগলি

তাই। এবিআই ফিল্টারটিতে নতুন প্রসেসরের আর্কিটেকচার যুক্ত করার পরে - স্টুডিও ডিভাইস সনাক্তকরণ বন্ধ করে দেয়। এই টিপটি আমাকে সমস্যা সমাধানে সহায়তা করেছে !!
ভেটাল

আমার জন্য এটি
এমুলেটরে

41

অ্যান্ড্রয়েড স্টুডিওতে, বিল্ড মেনু নির্বাচন করুন ,

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

তারপরে বিল্ড ভেরিয়েন্ট নির্বাচন করুন ক্লিক করুন ... এবং ' বিল্ড ভেরিয়েন্টস ' উইন্ডোতে এক্স 86 ডিবেগ নির্বাচন করুন (বা প্রকাশ করুন)

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

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


এটি নিখুঁতভাবে কাজ করেছে - আমার গ্রেড সেটআপটি এআরএম এবং x86 উভয় বিল্ডকেই সংজ্ঞায়িত করেছে, তবে এআরএম ভেরিয়েন্টের বিপরীতে (আইওএসের ক্ষেত্রে সম্ভবত) x86 ভেরিয়েন্টটি তৈরি করতে আমাকে অ্যান্ড্রয়েড স্টুডিওকে নির্দেশ দিতে হয়েছিল। ধন্যবাদ!
jevon

নোট করুন যে আপনার প্রকল্পটি বাছাই করা দরকার, বা এটি করার বিকল্পটি ধূসর করে দেওয়া হবে। আমি মনে করি এমন আরও কিছু শর্ত রয়েছে যা এটিকে ধূসর করে তুলতে পারে - আপনার পরিষ্কার এবং পুনর্নির্মাণের প্রয়োজন হতে পারে।
ড্রোনজ

16

লিনাক্সে: ফাইল> অকার্যকর ক্যাশে / ফোনে পুনঃসূচনা করুন: পরিবর্তে এই ডিভাইসটির পরিবর্তনের ফটোগুলি (পিটিপি) এ পরিবর্তন করুন


4
উপরের উত্তরগুলির মধ্যে কোনওটিই কাজ করছে না। এটি কাজ করে। অনেক ধন্যবাদ.
27 এ থার্ড্কাসপায়েন্সার

আমি থেকে পরিবর্তিত Camera (PTP)করা Media Device (MTP)এবং এটি খুব কাজ করে। ধন্যবাদ!
কোনায়ুকি

11

আমারও একই সমস্যা ছিল এবং আমি নীচের মতো "অ্যাবিআই ফিল্টারস" তালিকায় "x86" মান যুক্ত করে সমাধান করেছি -

[ওপেন build.gradle (মডিউল: অ্যাপ্লিকেশন) ফাইল] এবং "এর জন্য অনুসন্ধান NDK " এ deafultSection এবং এটি "এক্স 86" যোগ করুন!

ndk {
            abiFilters "armeabi", "armeabi-v7a", "x86"
        }

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


4
আপনি armeabiএসডিকে 19 এবং তদূর্ধ্বকে লক্ষ্য করে থাকলে আপনার সম্ভবত ড্রপ হওয়া উচিত । অ্যান্ড্রয়েড নিজেই এটিকে 4.4 শুরু করে সমর্থন করে না
mradzinski

9

আমার ক্ষেত্রে লিনাক্স মেশিন adb devicesদেখানো হয়েছে

List of devices attached 
44b194f5    no permissions

তারপরে অ্যাডবি সার্ভারটি পুনরায় চালু করুন

sudo adb kill-server

এবং তারপর

sudo adb start-server

তারপরে আপনার ডিভাইসটি ডিবাগিং চালু করুন এবং টাইপ করুন

adb devices
List of devices attached 
44b194f5    device

অবশেষে ডিভাইসে চালাতে সক্ষম হয়েছিল


7

আমার ক্ষেত্রে আমার অ্যাপ্লিকেশন কিছু নেটিভ গ্রন্থাগার ব্যবহার করে। প্রতিটি প্ল্যাটফর্মের জন্য সংশ্লিষ্ট libs তৈরি করা প্রয়োজন।

সুতরাং x86 (বা অন্য কোনও) প্ল্যাটফর্মের নেটিভ লিব তৈরি করা হয়নি You আপনার অবশ্যই কোনও জায়গায় একটি অ্যাফিল্টার যুক্ত করতে হবে:

অনেকগুলি জায়গা রয়েছে যেখানে অবি ফিল্টার নির্দিষ্ট করা যেতে পারে:

  • অ্যাপ্লিকেশন.এমকে আপনার প্রয়োজনীয় প্ল্যাটফর্মটি যুক্ত করুন:

    APP_ABI := armeabi armeabi-v7a x86
    
  • build.gradle

    abiFilters সন্ধান করুন এবং আপনার মতো প্ল্যাটফর্ম যুক্ত করুন:

    abiFilters   "armeabi","armeabi-v7a","x86"
    


6

ডিভাইস x86 সমর্থন করে তবে APK কেবলমাত্র আরমেবি-ভি 7a সমর্থন করে)

আপনি x86এমুলেটরটিতে কোনও চিত্র ব্যবহার করেছেন বলে মনে হচ্ছে ।

একটি পৃথক একটি তৈরি করুন। আপনার যদি প্রয়োজন হয় তবে আর্ম ডিভাইসগুলি খুঁজতে "অন্যান্য চিত্রগুলি" ট্যাবটি চয়ন করুন।

অথবা, একটি আসল ডিভাইসে চালান। আমার মনে হয় আপনার তালিকাভুক্ত রেপোটি রাস্পবেরি পাই 3 / ওড্রয়েডে চালানো।


6

বিকাশকারী বিকল্পগুলিতে ইউএসবি ডিবাগিং অফ / অন টগল করে তা নিশ্চিত করতে পারে, সমস্যার সমাধান হয়েছে। এমনকি অ্যান্ড্রয়েড স্টুডিওতে "নির্বাচন লক্ষ্য নির্বাচন করুন" উইন্ডোটি বাতিল করে ইউএসবি ডিবাগিং টগল করার পরে আবার অ্যাপ্লিকেশন চালানোর চেষ্টা করুন।


5

আমার জন্য এটি আমার থেকে তারের বিকল্পটি পরিবর্তন করার কাজ করেছে

-> Charge Only. 

প্রতি

-> Transfer file.



2

আমার শারীরিক ডিভাইসে, আমি এটি পেতে শুরু করেছি। সমাধানটি ছিল বিকাশকারী সেটিংসে গিয়ে ইউএসবি ডিবাগিংটি চালু করা।


2

আপনি যদি উবুন্টু ব্যবহার করেন:

  1. ইউএসবি ডিবাগিং চালু আছে তা নিশ্চিত করুন
  2. আপনার তার সংযোগ পরীক্ষা করুন
  3. নোটিফিকেশন বারে অ্যান্ড্রয়েড সিস্টেমের বিজ্ঞপ্তিটি পরীক্ষা করুন এবং ফাইল স্থানান্তর করতে চার্জিং স্থিতির পরিবর্তনের জন্য এটি স্পর্শ করুন
  4. এখন টার্মিনাল যান এবং টাইপ করুন: অ্যাডবি ডিভাইসগুলি চালানোর পরে এই কমান্ডটি অ্যাডবি পুনরায় আরম্ভ করুন এবং আপনার ডিভাইস তালিকায় প্রদর্শন করুন


0

রিয়েল ফোনে আপনার কোডটি পরীক্ষা করুন। যদি আপনার এখনও একই সমস্যা থাকে তবে আপনার কোডটি আবার আমদানি করুন এবং এর আগে আপনার এসডিকে আপডেট করা উচিত এবং এআরএম সিস্টেম চিত্র সহ একটি নতুন এমুলেটর তৈরি করা উচিত।


0

অনেক সময় এর অর্থ হল যে আপনি আপনার ডিভাইসে আপনার ল্যাপটপ / কম্পিউটার অ্যাক্সেস মঞ্জুর করেন নি। আপনার ডিভাইসটি একবার দেখুন এবং ডিবাগিং অনুমতিগুলির সাথে "অ্যাক্সেসের অনুমতি দিন" বোতামটি ক্লিক করুন।


0

এক্স 86 প্রসেসর ব্যবহার করে একটি এভিডি চালানো এআরএম এমুলেটর ব্যবহারের চেয়ে 10x দ্রুত, তবে বেশিরভাগ সময় আপনি কেবল নিজের এপিএমটি এআরএম-এর জন্য সংকলন করেন। এক্স x এভিডি ব্যবহার করে দ্রুত ইমুলেশন রান করার জন্য আমাকে নিম্নলিখিতগুলি করতে হয়েছিল (একটি কোকোস 2 ডি এক্স প্রকল্পের জন্য):

  • app / jni / Android.mk

    APP_ABI := armeabi-v7a:x86
    
  • গ্রেড.প্রোপার্টি

    PROP_APP_ABI=armeabi-v7a:x86
    
  • app / build.gradle .g

    android {
        ...
        defaultConfig {
            ...
            ndk {
                abiFilters = []
                abiFilters.addAll(PROP_APP_ABI.split(':').collect{it as String})
            }
        }
    }
    

0

ডিভাইসটি পুনরায় চালু করা আমার জন্য সমস্যার সমাধান হয়েছে (প্রতিক্রিয়া নেটিভ)


0

অ্যান্ড্রয়েড স্টুডিও আপডেট করার পরে এটি আমার কাছে হয়েছিল। আমার ক্ষেত্রে, বিল্ড সেটিংটি x86Debug-x86 এ স্বয়ংক্রিয়ভাবে কনফিগার করা হয়নি বলেই এটি ঘটেছিল। কেবল বিল্ডটি খোলার মাধ্যমে এটি পরিবর্তন করুন >> বিল্ড বৈকল্প নির্বাচন করুন >> আরমেবি-ভি 7 এ থেকে বিল্ড বৈকল্পিক বিকল্পটি x86 ডেবেগ-এক্স 86 বা আপনার এমুলেটরটিতে যা প্রয়োজন তা পরিবর্তন করুন।


0

সুরক্ষা বিকল্পগুলি থেকে অজানা উত্সগুলি সক্ষম করার চেষ্টা করুন । এটা আমার জন্য কাজ করেছে।


0

আমি এটা দেখি

আপনি যদি নিজের বিল্ডগুলির জন্য সিএমকে ব্যবহার করছেন, তবে ফাইলটি \ proj.android \ গ্রেড.পিপ্রের্টি পরীক্ষা করে দেখুন এবং x86 এর জন্য বিল্ডগুলি অন্তর্ভুক্ত করার জন্য PROP_APP_ABI আপডেট করুন বা বিকল্পভাবে, আপনি কেবল আরমেবি-ভি 7 এ বা আর্ম 64-ভি 8 এ অ্যান্ড্রয়েড ব্যবহার করতে পারেন ইমেজ।

উদাহরণ: PROP_APP_ABI = আরমেবি-ভি 7 এ: আর্ম 64-ভি 8 এ: x86

আপনি যদি চিত্রে ব্যবহার করছেন না, আপনি যদি সেখানে এবিআই সেটিংস পরিবর্তন করতে চান তবে \ proj.android \ app \ jni \ Application.mk দেখুন k


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