के आधार पर विभिन्न लाइब्रेरी/आयात एक एंड्रॉइड ऐप में, मुझे एक निश्चित परिधीय के लिए एक विशिष्ट एसडीके का उपयोग करने की आवश्यकता है।बिल्ड प्रकार
सब कुछ एक भी निर्माण प्रकार के साथ ठीक काम करता है:
provided fileTree(include: ['peripheral.jar'], dir: 'libs')
compile fileTree(exclude: ['peripheral.jar'], dir: 'libs')
समस्या यह है कि एसडीके वास्तविक परिधीय में स्थापित किसी साझा लाइब्रेरी पर निर्भर करता है। यदि मैं किसी भी अन्य एंड्रॉइड डिवाइस में ऐप इंस्टॉल करने का प्रयास करता हूं (बाकी कार्यक्षमताओं के डीबगिंग उद्देश्यों के लिए), मुझे INSTALL_FAILED_MISSING_SHARED_LIBRARY
त्रुटि मिलती है।
मुझे लगता है कि मैं दो निर्माण वेरिएंट इस्तेमाल कर सकते हैं:
release
, कि एसडीकेdebug
, कि एसडीके का उपयोग नहीं करता
मैं एसडीके सहित कोशिश की है का उपयोग करता है केवल release
निर्माण प्रकार:
releaseProvided fileTree(include: ['peripheral.jar'], dir: 'libs')
releaseCompile fileTree(exclude: ['peripheral.jar'], dir: 'libs')
लेकिन फिर, मैं गायब आयात की वजह से परियोजना को संकलित नहीं कर सकता।
main/java/package/PeripheralManager.java
में:
public class ScannerManager {
// fake
}
release/java/package/PeripheralManager.java
में:
import peripheral; <- IT FAILS WHEN COMPILING
public class ScannerManager {
// real code
}
कोई मायने रखती निर्माण प्रकार मैं चुना है, मैं यह कर सकते हैं
तो मैं केवल वर्ग उन आयात का उपयोग करता है दोहराया प्रोजेक्ट को संकलित नहीं करें अगर आयात को किसी एक प्रकार में हल नहीं किया गया है ...
क्या आप डुप्लिकेट से बचने के लिए मल्टीडेक्स आज़मा सकते हैं। –
मैंने पहले कभी इसका उपयोग नहीं किया है। क्या आपको लगता है कि इसे बिल्ड प्रकारों का उपयोग करके हल नहीं किया जा सकता है? – thelawnmowerman
उम्मीद है कि यह मदद करेगा, क्या मैं यहां जवाब साझा कर सकता हूं? –