मैं बाहरी एसडीके का उपयोग करने की कोशिश करता हूं जिसमें जार फ़ाइल और कुछ *.so फ़ाइलें शामिल हैं। ग्रहण से नमूना प्रोजेक्ट भी है जिसमें इसमें एक ही फाइल शामिल है। जब मैं एंड्रॉइड स्टूडियो में प्रोजेक्ट आयात करता हूं तो यह ठीक काम करता है लेकिन जब मैंने आयातित प्रोजेक्ट से फाइलों को कॉपी करने की कोशिश की तो मेरे वर्तमान प्रोजेक्ट में यह त्रुटि UnsatisfiedLinkError
नमूना परियोजना लक्ष्य एपीआई १४, मेरा परियोजना लक्ष्य एपीआई २७। क्या मुझे अपनी वर्तमान परियोजना के लिए एनडीके समर्थन शामिल करना चाहिए और इसे *.so फाइलों को फिर से संकलित करना चाहिए या शायद नमूना से पुरानी फाइलों का उपयोग करने का कोई विकल्प है?
1 उत्तर
1. main
फोल्डर के तहत jniLibs
नाम का फोल्डर बनाएं, स्ट्रक्चर नीचे अंजीर जैसा है।
|–app:
|–|–src:
|–|–|–main
|–|–|–|–jniLibs
|–|–|–|–|–armeabi
|–|–|–|–|–|–.so Files
|–|–|–|–|–x86
|–|–|–|–|–|–.so Files
...
|–|–|–|–|–other abi folder such as armeabi-v7a
|–|–|–|–|–|–.so Files
प्रोजेक्ट
libs
फ़ोल्डर में .jar फ़ाइल रखें औरmodule
build.gradle फ़ाइल में नीचे की पंक्ति जोड़ेंनिर्भरता { कार्यान्वयन फ़ाइलें ('libs/your_own.jar') }
सब ठीक होना चाहिए।
संपादित: कुछ एंड्रॉइड डिवाइस (एमुलेटर) में 64-बिट प्रोसेसर हैं, यदि आपके जिनलिब्स में arm64
सबफ़ोल्डर नहीं है, तो आप इस फ़िल्टर (abiFilters) को अपने ऐप मॉड्यूल की बिल्ड.ग्रेडल फ़ाइलों में जोड़ सकते हैं:
defaultConfig {
...
ndk {
abiFilters "armeabi-v7a", "x86", "armeabi", "mips"
}
}
यह ऐप को केवल मौजूदा फ़ोल्डरों में .so फ़ाइलों का उपयोग करने के लिए कहेगा।
संबंधित सवाल
नए सवाल
android
एंड्रॉइड Google का मोबाइल ऑपरेटिंग सिस्टम है, जिसका उपयोग प्रोग्रामिंग या डिजिटल डिवाइस (स्मार्टफोन, टैबलेट, ऑटोमोबाइल्स, टीवी, वियर, ग्लास, IoT) को विकसित करने के लिए किया जाता है। एंड्रॉइड से संबंधित विषयों के लिए, एंड्रॉइड-विशिष्ट टैग जैसे कि एंड्रॉइड-इरादे, एंड्रॉइड-गतिविधि, एंड्रॉइड-एडॉप्टर आदि का उपयोग करें। विकास या प्रोग्रामिंग के अलावा अन्य प्रश्नों के लिए, लेकिन एंड्रॉइड फ्रेमवर्क से संबंधित हैं, इस लिंक का उपयोग करें: https: // android.stackexchange.com।