मुझे एक एंड्रॉइड प्रोजेक्ट के भीतर एक मुख्य/संपत्ति निर्देशिका में स्थित एक जार फ़ाइल की आवश्यकता है। जार फ़ाइल वहां स्थित है यह महत्वपूर्ण है।बाहरी रूप से एक जार फ़ाइल कैसे रखें, फिर भी मेरे एंड्रॉइड प्रोजेक्ट में अपनी कक्षाओं का उपयोग करें?
मेरे मुख्य एंड्रॉइड प्रोजेक्ट के साथ मेरे कोड में इस जार फ़ाइल को संदर्भित करने और इसकी कक्षाओं का उपयोग करने का कोई तरीका है?
स्पष्ट होने के लिए मैं एक बार संकलित होने पर मुख्य परियोजना में जार जोड़ना नहीं चाहता हूं।
संपादित करें: मैंने नीचे दिए गए लिंक को आजमाया है और ऐसा लगता है कि मैंने क्लास फ़ाइल लोड की है। लेकिन मैं गतिशील रूप से लोड कक्षा के लिए कन्स्ट्रक्टर तर्क को परिभाषित करने के तरीके को समझ रहा हूं।
android-custom-class-loading-sample
EDIT2
लगभग वहाँ। मैंने पुष्टि की है कि वर्ग मेरी कक्षाओं से भरा हुआ है .jar। हालांकि मैं इसे तत्काल अटक गया हूँ।
लाइसेंस पर ValalidatorClazz.getConstructor लाइन मुझे नीचे त्रुटि मिलती है। मुझे लगता है कि मुझे अपनी इंटरफेस फ़ाइल से कुछ याद आ रही है?
java.lang.NoSuchMethodException: [इंटरफ़ेस com.google.android.vending.licensing.Policy, इंटरफ़ेस com.google.android.vending.licensing.DeviceLimiter, इंटरफेस com.google.android.vending.licensing.LicenseCheckerCallback, पूर्णांक, वर्ग java.lang.String, वर्ग java.lang.String]
public Class licenseValidatorClazz = null;
public LicenseValidator validator;
...
// Initialize the class loader with the secondary dex file.
DexClassLoader cl = new DexClassLoader(dexInternalStoragePath.getAbsolutePath(),
optimizedDexOutputPath.getAbsolutePath(),
null,
mContext.getClassLoader());
try {
// Load the library class from the class loader.
licenseValidatorClazz = cl.loadClass("com.google.android.vending.licensing.LicenseValidator");
validator = (LicenseValidator) licenseValidatorClazz.getConstructor(Policy.class,DeviceLimiter.class,LicenseCheckerCallback.class,int.class,String.class,String.class).newInstance(ddd, new NullDeviceLimiter(),
callback, generateNonce(), mPackageName, mVersionCode);
} catch (Exception exception) {
// Handle exception gracefully here.
exception.printStackTrace();
}
मैं एक अंतरफलक जो भरी हुई वर्ग के लिए पारित करने के लिए काम करता है शामिल है।
public interface LicenseValidator
{
public LicenseCheckerCallback getCallback();
public int getNonce();
public String getPackageName();
public void verify(PublicKey publicKey, int responseCode, String signedData, String signature);
public void handleResponse(int response, ResponseData rawData);
public void handleApplicationError(int code);
public void handleInvalidResponse();
}
जो उपकरण का निर्माण कर रहे हैं आप उपयोग कर रहे हैं? – AesSedai101
मैं एंड्रॉइड स्टूडियो का उपयोग कर रहा हूं। – zeroprobe