जवाबों:
INSTALL_FAILED_NO_MATCHING_ABIS
जब आप एक ऐसा एप्लिकेशन इंस्टॉल करने का प्रयास कर रहे हैं जिसमें देशी पुस्तकालय हैं और इसमें आपके cpu आर्किटेक्चर के लिए एक मूल पुस्तकालय नहीं है। उदाहरण के लिए यदि आपने armv7 के लिए एक ऐप संकलित किया है और इसे एक एमुलेटर पर स्थापित करने की कोशिश कर रहे हैं जो इंटेल आर्किटेक्चर का उपयोग करता है इसके बजाय यह काम नहीं करेगा।
INSTALL_FAILED_NO_MATCHING_ABIS तब है जब आप एक ऐसा एप्लिकेशन इंस्टॉल करने का प्रयास कर रहे हैं जिसमें देशी लाइब्रेरी हों और इसमें आपके cpu आर्किटेक्चर के लिए मूल लाइब्रेरी न हो। उदाहरण के लिए यदि आपने armv7 के लिए एक ऐप संकलित किया है और इसे एक एमुलेटर पर स्थापित करने की कोशिश कर रहे हैं जो इंटेल आर्किटेक्चर का उपयोग करता है इसके बजाय यह काम नहीं करेगा।
Visual Studio 2015 पर Xamarin का उपयोग करके इस समस्या को हल करें:
"समर्थित आर्किटेक्चर" के तहत निम्नलिखित जाँच करें:
सहेजें
संपादित करें: इस समाधान को विज़ुअल स्टूडियो 2017 पर भी काम करने के रूप में बताया गया है ।
एडिट 2: इस समाधान को मैक के लिए विजुअल स्टूडियो 2017 पर काम करने के रूप में बताया गया है ।
मैं एक और सूत्र से उत्तर पोस्ट कर रहा हूं क्योंकि यह मेरे लिए अच्छी तरह से काम कर रहा है, चाल दोनों आर्किटेक्चर के लिए समर्थन जोड़ने के लिए है:
इसे पोस्ट करना क्योंकि मुझे सीधा उत्तर नहीं मिल रहा था और मुझे जो करना था, उसे पाने के लिए अलग-अलग पोस्ट के एक जोड़े को देखना पड़ा ...
मैं केवल अपने मॉड्यूल के निर्माण के साथ x86 त्वरित (HAXM) एमुलेटर का उपयोग करने में सक्षम था। android {} ब्लॉक के अंदर लिपि का निर्माण करें:
splits {
abi {
enable true
reset()
include 'x86', 'armeabi-v7a'
universalApk true
}
}
चलाएँ (बनाएँ) ... अब आपके आउटपुट फ़ोल्डर में a (yourapp) -x86-debug.apk होगा। मुझे यकीन है कि रन पर स्थापित करने को स्वचालित करने का एक तरीका है, लेकिन मैं अपना पसंदीदा HAXM एमुलेटर शुरू करता हूं और कमांड लाइन का उपयोग करता हूं:
adb install (yourapp)-x86-debug.apk
(yourapp)-x86-debug.apk
मेरे प्रोजेक्ट आउटपुट में फ़ाइल नहीं मिली ।
यदि आप Genymotion का उपयोग कर रहे हैं तो आपको ARM ट्रांसलेशन और GApps इंस्टॉल करने की आवश्यकता है
यह वास्तव में एक अजीब त्रुटि है जो आपके ऐप को बहु-स्तरीय बनाने के कारण हो सकती है। इसे प्राप्त करने के लिए, अपने ऐप्लिकेशन की बिल्ड.gradle फ़ाइल में निम्न ब्लॉक का उपयोग करें :
android {
splits {
abi {
enable true
reset()
include 'x86', 'armeabi-v7a'
universalApk true
}
}
...[rest of your gradle script]
मुझे पता है कि यहाँ बहुत सारे उत्तर थे, लेकिन TL; DR संस्करण यह है (यदि आप Xamarin स्टूडियो का उपयोग कर रहे हैं)
Options
Android Build
Advanced
टैब पर जाएंx86
/ armeabi-v7a
/ armeabi
)Android 8 पर:
apache.commons.io:2.4
यह INSTALL_FAILED_NO_MATCHING_ABIS देता है, इसे 2.5 या 2.6 में बदलने का प्रयास करें और यह काम करेगा या इस पर टिप्पणी करेगा।
@ Enl8enmentnow की टिप्पणी जीनोमिशन का उपयोग करके समस्या को ठीक करने के लिए एक उत्तर होना चाहिए:
यदि आपको ARM ट्रांसलेटर का उपयोग करते समय भी Genymotion पर यह समस्या है, तो यह इसलिए है क्योंकि आप Google Nexus 10 की तरह x86 वर्चुअल डिवाइस बना रहे हैं। कस्टम टैबलेट में से एक की तरह, ARM वर्चुअल डिवाइस को चुनें।
यह मेरे लिए काम किया ... Android> ग्रेड स्क्रिप्ट> build.gradle (मॉड्यूल: एप्लिकेशन) Android के अंदर जोड़ें *
android {
// compileSdkVersion 27
defaultConfig {
//
}
buildTypes {
//
}
// buildToolsVersion '27.0.3'
splits {
abi {
enable true
reset()
include 'x86', 'armeabi-v7a'
universalApk true
}
}
}
मुझे बिटकॉइन लाइब्रेरी (org.bitcoinj: bitcoinj-core: 0.14.7) का उपयोग करने में यह समस्या हुई। इसे android मोड के अंदर एक पैकेजिंग विकल्प build.gradle (मॉड्यूल ऐप में) में जोड़ा गया। इसने मेरी मदद की।
android {
...
packagingOptions {
exclude 'lib/x86_64/darwin/libscrypt.dylib'
exclude 'lib/x86_64/freebsd/libscrypt.so'
exclude 'lib/x86_64/linux/libscrypt.so'
}
}
मैक पर जीनोमिशन के लिए, मुझे अपना एपीके इंस्टॉल करते समय INSTALL_FAILED_NO_MATCHING_ABIS त्रुटि मिल रही थी।
मेरी परियोजना में कोई "APP_ABI" नहीं था, लेकिन मैंने इसे तदनुसार जोड़ा और इसने दोनों आर्किटेक्चर के लिए केवल एक एपीकेटी बनाया लेकिन यह काम किया। https://stackoverflow.com/a/35565901/3241111
दृश्य स्टूडियो सामुदायिक संस्करण 2017 में, कभी-कभी Android विकल्प से समर्थित ABI का चयन अभ्यस्त काम नहीं करता है।
उस स्थिति में कृपया पुष्टि करें कि .csproj में निम्न पंक्ति है और समान बिल्ड कॉन्फ़िगरेशन में कोई डुप्लिकेट लाइनें नहीं हैं।
<AndroidSupportedAbis>armeabi;armeabi-v7a;x86;x86_64;arm64-v8a</AndroidSupportedAbis>
संपादित करने के लिए,
मूल रूप से अगर आपने ऊपर सब कुछ करने की कोशिश की और फिर भी आपके पास एक ही त्रुटि है "क्योंकि मैं इस मुद्दे का सामना पहले भी कर रहा हूं" तो चेक .jar या .aar या आपके द्वारा जोड़ा गया मॉड्यूल ndk का उपयोग करने वाला एक पुस्तकालय हो सकता है, और वह 8.0 का समर्थन नहीं कर रहा है। (Oreo) +, इसी तरह मैं Microsoft सिग्नलआर सॉकेट लाइब्रेरी का उपयोग कर रहा हूँ। अपनी .jar फ़ाइलें और बाद में मुझे पता चला कि ऐप Oreo में इंस्टॉल नहीं हो रहा है, तो बाद में मैं उस लाइब्रेरी को हटा दूंगा क्योंकि वर्तमान में इसके git पेज पर कोई समाधान नहीं है और मैं दूसरे के लिए जाता हूँ। ।
इसलिए कृपया अपने द्वारा उपयोग किए जा रहे पुस्तकालय की जाँच करें और यदि आपको इसकी आवश्यकता है, तो इसके बारे में खोज करें।
एंड्रॉइड 7 (नूगाट) से एंड्रॉइड 8 (ओरेओ) में स्थानांतरित होने पर मुझे इस मुद्दे का सामना करना पड़ा।
मैंने ऊपर सूचीबद्ध कई तरीकों की कोशिश की है और मेरे बुरे भाग्य ने कुछ भी काम नहीं किया है।
तो मैं .zip फ़ाइल को .apk फ़ाइल बदल यह निकाला जाता है और पाया lib इस फाइल जो साथ था फ़ोल्डर /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 को हल करने के लिए इन पुस्तकालयों को संस्करण अपग्रेड / हटाने / बदलने का प्रयास कर सकते हैं
मेरे साथ ऐसा हुआ। मैंने एसडीके प्रबंधक की जाँच की और उसने मुझे बताया कि मैं जो भी उपयोग कर रहा था उसमें अपडेट था। मैंने इसे अपडेट किया और समस्या दूर हो गई।
काफी देर हो गई, लेकिन बस इसी में भाग गई। इसके लिए है Xamarin.Android
। सुनिश्चित करें कि आप रिलीज़ मोड में डीबग करने का प्रयास नहीं कर रहे हैं। अगर मुझे रिलीज़ मोड में और डीबग करने का प्रयास करने में वही त्रुटि मिलती है। बस रिलीज से डिबग पर स्विच करने से मुझे ठीक से स्थापित करने की अनुमति मिली।
मेरे मामले में, मुझे एप्लिकेशन के x86 संस्करण को डाउनलोड करने की आवश्यकता है।