আমি আমার অ্যাপটি অ্যান্ড্রয়েড এল প্রিভিউ ইন্টেল অ্যাটম ভার্চুয়াল ডিভাইসে ইনস্টল করার চেষ্টা করেছি, এটি ত্রুটির সাথে ব্যর্থ হয়েছে:
INSTALL_FAILED_NO_MATCHING_ABIS
এর মানে কী?
আমি আমার অ্যাপটি অ্যান্ড্রয়েড এল প্রিভিউ ইন্টেল অ্যাটম ভার্চুয়াল ডিভাইসে ইনস্টল করার চেষ্টা করেছি, এটি ত্রুটির সাথে ব্যর্থ হয়েছে:
INSTALL_FAILED_NO_MATCHING_ABIS
এর মানে কী?
উত্তর:
INSTALL_FAILED_NO_MATCHING_ABIS
আপনি যখন এমন কোনও অ্যাপ্লিকেশন ইনস্টল করার চেষ্টা করছেন যাতে নেটিভ লাইব্রেরি রয়েছে এবং এতে আপনার সিপু আর্কিটেকচারের জন্য কোনও নেটিভ গ্রন্থাগার নেই have উদাহরণস্বরূপ, যদি আপনি আর্মভ 7 এর জন্য একটি অ্যাপ্লিকেশন সংকলন করেন এবং এটি কোনও এমুলেটরটিতে ইনস্টল করার চেষ্টা করছেন যা এর পরিবর্তে ইন্টেল আর্কিটেকচার ব্যবহার করে এটি কাজ করবে না।
INSTALL_FAILED_NO_MATCHING_ABIS আপনি যখন এমন অ্যাপ্লিকেশন ইনস্টল করার চেষ্টা করছেন যাতে নেটিভ লাইব্রেরি রয়েছে এবং এতে আপনার সিপিইউ আর্কিটেকচারের জন্য কোনও নেটিভ গ্রন্থাগার নেই। উদাহরণস্বরূপ, যদি আপনি আর্মভ 7 এর জন্য একটি অ্যাপ্লিকেশন সংকলন করেন এবং এটি কোনও এমুলেটরটিতে ইনস্টল করার চেষ্টা করছেন যা এর পরিবর্তে ইন্টেল আর্কিটেকচার ব্যবহার করে এটি কাজ করবে না।
ভিসুয়াল স্টুডিও 2015. Xamarin ব্যবহার করে এই সমস্যা নির্ধারণ করুন:
"সমর্থিত আর্কিটেকচার" এর অধীনে নিম্নলিখিতটি পরীক্ষা করা হয়েছে:
সংরক্ষণ
সম্পাদনা: এই সমাধানটি ভিজ্যুয়াল স্টুডিও 2017 তেও কাজ করছে বলে জানা গেছে ।
সম্পাদনা 2: এই সমাধানটি ম্যাকের জন্য ভিজ্যুয়াল স্টুডিও 2017 তেও কাজ করছে বলে জানা গেছে ।
আমি অন্য থ্রেড থেকে একটি উত্তর পোস্ট করছি কারণ এটি আমার পক্ষে ভাল কাজ করেছে, কৌশলটি উভয় আর্কিটেকচারের জন্য সমর্থন যুক্ত করা:
এটি পোস্ট করা হয়েছে কারণ আমি সরাসরি উত্তর খুঁজে পেতে পারি নি এবং আমি যা করতে চাই তা পেতে বিভিন্ন পোস্টের কয়েকটিতে নজর রাখতে হয়েছিল ...
আমি কেবলমাত্র আমার মডিউলটির বিল্ড। অ্যাড্রয়েড স্ক্রিপ্টটিতে অ্যান্ড্রয়েড}} ব্লকটিতে এটি যোগ করে x86 এক্সিলারেটেড (HAXM) এমুলেটরটি ব্যবহার করতে সক্ষম হয়েছি:
splits {
abi {
enable true
reset()
include 'x86', 'armeabi-v7a'
universalApk true
}
}
রান করুন (বিল্ড করুন) ... এখন আপনার আউটপুট ফোল্ডারে একটি (yourapp) -x86-debug.apk আসবে। আমি নিশ্চিত যে রান করার পরে স্বয়ংক্রিয়ভাবে ইনস্টল করার উপায় আছে তবে আমি কেবল আমার পছন্দের HAXM এমুলেটরটি শুরু করে কমান্ড লাইনটি ব্যবহার করছি:
adb install (yourapp)-x86-debug.apk
(yourapp)-x86-debug.apk
আমার প্রকল্পের আউটপুটটিতে ফাইল খুঁজে পেল না।
যদি আপনি জিনমোশন ব্যবহার করেন আপনার এআরএম অনুবাদ এবং জিপিএস ইনস্টল করা দরকার
এটি প্রকৃতপক্ষে একটি অদ্ভুত ত্রুটি যা আপনার অ্যাপ্লিকেশনটিকে মাল্টিডেক্স করার কারণে হতে পারে। এটি পেতে আপনার অ্যাপ্লিকেশনটির বিল্ড.gradle ফাইলটিতে নিম্নলিখিত ব্লকটি ব্যবহার করুন:
android {
splits {
abi {
enable true
reset()
include 'x86', 'armeabi-v7a'
universalApk true
}
}
...[rest of your gradle script]
আমি জানি এখানে প্রচুর উত্তর ছিল, তবে টিএল; ডিআর সংস্করণটি এটি (আপনি যদি জামারিন স্টুডিও ব্যবহার করছেন):
Options
Android Build
Advanced
ট্যাবে যানx86
/ armeabi-v7a
/ armeabi
)অ্যান্ড্রয়েড 8 এ:
apache.commons.io:2.4
এটি INSTALL_FAILED_NO_MATCHING_ABIS দেয়, এটিকে 2.5 বা 2.6 এ পরিবর্তনের চেষ্টা করুন এবং এটি কাজ করবে বা এ সম্পর্কে মন্তব্য করবে।
জিনমোশন ব্যবহার করে সমস্যাটি সমাধান করার জন্য @ এনএল 8 এনমেন্টউ এর মন্তব্য হওয়া উচিত:
জিনমোশনটিতে আপনার যদি এআরএম অনুবাদক ব্যবহার করার সময়ও এই সমস্যাটি হয় তবে এটি হ'ল কারণ আপনি গুগল নেক্সাস ১০ এর মতো একটি x86 ভার্চুয়াল ডিভাইস তৈরি করছেন, পরিবর্তে কাস্টম ট্যাবলেটগুলির মতো একটি এআরএম ভার্চুয়াল ডিভাইস বাছুন।
এটি আমার জন্য কাজ করেছে ... অ্যান্ড্রয়েড> গ্রেডল স্ক্রিপ্টস> বিল্ড.gradle (মডিউল: অ্যাপ) অ্যান্ড্রয়েডের ভিতরে যুক্ত করুন *
android {
// compileSdkVersion 27
defaultConfig {
//
}
buildTypes {
//
}
// buildToolsVersion '27.0.3'
splits {
abi {
enable true
reset()
include 'x86', 'armeabi-v7a'
universalApk true
}
}
}
বিটকয়েনজে লাইব্রেরি ব্যবহার করে আমার এই সমস্যা হয়েছিল (org.bitcoinj: বিটকয়েনজ-কোর: 0.14.7) অ্যান্ড্রয়েড স্কোপের অভ্যন্তরে একটি প্যাকেজিং বিকল্পগুলি বিল্ড.gradle (মডিউল অ্যাপ্লিকেশন) এ যুক্ত হয়েছে। এটা আমাকে সাহায্য করেছে।
android {
...
packagingOptions {
exclude 'lib/x86_64/darwin/libscrypt.dylib'
exclude 'lib/x86_64/freebsd/libscrypt.so'
exclude 'lib/x86_64/linux/libscrypt.so'
}
}
ম্যাকের জেনিমোশনের জন্য, আমি আমার APK ইনস্টল করার সময় INSTALL_FAILED_NO_MATCHING_ABIS ত্রুটি পাচ্ছিলাম।
আমার প্রকল্পে কোনও "অ্যাপ্লিকেশন_এবিআই" ছিল না তবে আমি সেটিকে যুক্ত করেছিলাম এবং এটি উভয় আর্কিটেকচারের জন্য মাত্র একটি এপিপি তৈরি করেছিল তবে এটি কার্যকর হয়েছিল। https://stackoverflow.com/a/35565901/3241111
ভিজ্যুয়াল স্টুডিও সম্প্রদায় সংস্করণ 2017 এ, কখনও কখনও অ্যান্ড্রয়েড বিকল্পগুলি থেকে সমর্থিত এবিআইয়ের নির্বাচন কাজ করবে না।
সেক্ষেত্রে দয়া করে যাচাই করুন যে .csproj এর একই বিল্ড কনফিগারেশনে নিম্নলিখিত লাইন এবং কোনও সদৃশ লাইন নেই।
<AndroidSupportedAbis>armeabi;armeabi-v7a;x86;x86_64;arm64-v8a</AndroidSupportedAbis>
সম্পাদনা করার জন্য,
মূলত যদি আপনি উপরের সমস্ত কিছু চেষ্টা করে থাকেন এবং এখনও আপনার একই ত্রুটি থাকে "কারণ আমি খুব আগে এই সমস্যার মুখোমুখি আছি" তবে যা জার বা .আর বা মডিউল আপনি যুক্ত করেছেন এটি এনডি কে ব্যবহার করে একটি গ্রন্থাগার হতে পারে এবং এটি 8.0 সমর্থন করছে না (ওরিও) +, একইভাবে আমি মাইক্রোসফ্ট সিগন্যালআর সকেট লাইব্রেরিটি ব্যবহার করছি তার জাজার ফাইলগুলি যুক্ত করে এবং পরে আমি জানতে পেরেছিলাম ওরিওতে অ্যাপ্লিকেশন ইনস্টল করা হচ্ছে না তারপরে আমি সেই লাইব্রেরিটি সরিয়ে ফেলি কারণ বর্তমানে এর গিট পৃষ্ঠায় কোনও সমাধান নেই এবং আমি অন্যটির জন্য যাচ্ছি ।
সুতরাং দয়া করে আপনি যে লাইব্রেরিটি ব্যবহার করছেন তা যাচাই করুন এবং যদি আপনার আগ্রহের সাথে সেইটির প্রয়োজন হয় তবে এটি অনুসন্ধান করুন।
অ্যান্ড্রয়েড 7 (নওগ্যাট) থেকে অ্যান্ড্রয়েড 8 (ওরিও) এ স্থানান্তরিত হওয়ার সময় আমি এই সমস্যার মুখোমুখি হয়েছি।
আমি উপরে তালিকাভুক্ত বেশ কয়েকটি উপায়ে চেষ্টা করেছি এবং আমার দুর্ভাগ্য কিছুই কাজ করে নি।
তাই আমি .zip ফাইলে .apk ফাইল পরিবর্তন এটা নিষ্কাশিত দেখলেন liberal এর সংক্ষিপ্ত রূপ এই ফাইলটি যা দিয়ে ছিল ফোল্ডারের /x86_64/darwin/libscrypt.dylib তাই এই মুছে ফেলার জন্য আমি আমার একটি কোড যোগ build.gradle অ্যান্ড্রয়েড অধ্যায় নিচে মডিউল (অর্থাত )
packagingOptions {
exclude 'lib/x86_64/darwin/libscrypt.dylib'
exclude 'lib/x86_64/freebsd/libscrypt.so'
exclude 'lib/x86_64/linux/libscrypt.so'
}
চিয়ার্স সমস্যা সমাধান
কোন লাইব্রেরি নির্ভরতা এবিআইয়ের সাথে সঙ্গতিহীন তা খুঁজে পাওয়ার জন্য সাধারণ ক্ষেত্রে,
আপনি যখন APK সমস্যা ইনস্টল করবেন তখন INSTALL_FAILED_NO_MATCHING_ABIS সমাধানের জন্য এই লাইব্রেরিগুলিকে সংস্করণ আপগ্রেড / অপসারণ / প্রতিস্থাপনের চেষ্টা করতে পারেন
এটা আমার সাথে ঘটেছিল। আমি এসডিকে পরিচালককে পরীক্ষা করেছিলাম এবং এটি আমাকে বলেছিল যে আমি ব্যবহার করছি তার একটি আপডেট ছিল। আমি এটি আপডেট করেছি এবং সমস্যাটি চলে গেল।
আমার ক্ষেত্রে, আমার অ্যাপ্লিকেশনটির x86 সংস্করণটি ডাউনলোড করতে হবে।