का उपयोग कर मेरा प्रश्न 64 बिट एंड्रॉइड सिस्टम के लिए देशी एंड्रॉइड विकास की ओर निर्देशित है।एंड्रॉइड एनडीके- multlib समर्थन ग्रेडल
मैं ग्रेडबिल बिल्ड सिस्टम का उपयोग कर 64 बिट एंड्रॉइड सिस्टम पर 32 बिट संकलित देशी पुस्तकालयों के समर्थन को कॉन्फ़िगर करने का एक तरीका ढूंढ रहा हूं। उपयोग किए जाने वाले पुस्तकालयों को केवल 32 बिट बिल्ड के रूप में उपलब्ध होना चाहिए। यह पुस्तकालयों को 64 बिट तक बंद करने में बहुत समय लगेगा और त्रुटि होगी।
इसलिए, मैं इन प्रीबिल्ट 32 बिट बाइनरी को तैनात करने और एंड्रॉइड एप्लिकेशन के 32 बिट संस्करण का उपयोग करने के लिए ग्रेडल को कॉन्फ़िगर करना चाहता हूं।
वर्तमान कॉन्फ़िगरेशन निम्न त्रुटि की ओर जाता है:
E/AndroidRuntime﹕ FATAL EXCEPTION: main
Process: <application_name>, PID: 2170
java.lang.UnsatisfiedLinkError:
dalvik.system.PathClassLoader
[DexPathList[[zip file "/data/app/<application_name>/base.apk"],
nativeLibraryDirectories=[/vendor/lib64, /system/lib64]]]
enter code here`couldn't find "libmynativelibrary.so"
at java.lang.Runtime.loadLibrary(Runtime.java:366)
ऐसा लगता है जैसे कि PathClassLoader
गलत निर्देशिका में लग रहा है। मैंने प्रदान की गई एपीके फ़ाइल की जांच की है और इसमें पुस्तकालयों की कमी है। एपीके के अंदर कोई lib
फ़ोल्डर नहीं है। निर्माण प्रणाली 32 बिट पुस्तकालयों को शामिल करने के लिए सीम नहीं है। चूंकि armv7
के लिए केवल एक प्रीबिल्ड संस्करण है, इसलिए ये पुस्तकालय app/src/main/jnilibs
फ़ोल्डर में हैं।
मुझे यह जोड़ना होगा कि यह सेटअप किसी भी 32 बिट एंड्रॉइड सिस्टम के लिए पूरी तरह से काम करता है। मैंने इसे पहले एमुलेटर और एक भौतिक डिवाइस के साथ करने की कोशिश की।
ग्रेडल का उपयोग करके बहुभाषी 32/64 बिट समर्थन को कैसे सक्रिय किया जाना चाहिए? या एंड्रॉइड स्टूडियो/ग्रेडल का उपयोग कर 64 बिट एंड्रॉइड सिस्टम में 32 बिट एप्लिकेशन को तैनात करना कैसे संभव है?
मैंने वेब की खोज की और विषय से संबंधित एक लिंक पाया, लेकिन यह पुराने निर्माण प्रणाली का जिक्र कर रहा है: https://source.android.com/source/64-bit-builds.html। मैं नहीं जानता कि विवरण को अपनाने के लिए कैसे अपनाना है।
मैं एंड्रॉइड स्टूडियो (बिल्ड: 141.1 9 8 9 4 9, 6 जून, 2015) का उपयोग कर रहा हूं। project/build.gradle
छूटा हुआ है। app/build.gradle
फ़ाइल इस तरह दिखता है:
apply plugin: 'com.android.application'
android {
compileSdkVersion 22
buildToolsVersion "22.0.1"
defaultConfig {
applicationId "<application_name>"
minSdkVersion 1
targetSdkVersion 22
versionCode 1
versionName "1.0"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'),
'proguard-rules.pro'
}
debug {
debuggable true
}
}
productFlavors {
armv7 {
ndk {
abiFilter "armeabi-v7a"
}
}
fat
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
}
किसी को भी कृपया समझा सकता है इस 'productFlavors' में 'फैट' क्या है और अगर यह अनिवार्य आवश्यकता है? – mithil1501