android - मैं एंड्रॉइड स्टूडियो में सहायता फ़ाइल कैसे जोड़ सकता हूं(इन-ऐप बिलिंग उदाहरण से)




android-studio gradle (7)

Build.gradle में यह कोड जोड़ें

android {
    sourceSets {
        main {
            aidl.srcDirs = ['src']
        }
    }
}

पुनर्निर्माण और आयात सहायता वर्ग

मैं वर्तमान में एंड्रॉइड स्टूडियो में एक ग्रहण ऐप माइग्रेट कर रहा हूं। यह ऐप ऐप बिलिंग में उपयोग कर रहा था।

मेरी मुख्य समस्या प्रोजेक्ट और एग्रीएल फ़ाइल को संकलित करना है (मुझे लगता है कि आप सभी इस फ़ाइल का उपयोग करते हैं )

मुझे यह त्रुटि संदेश मिलता है:

Gradle: error: cannot find symbol class IInAppBillingService
Gradle: error: package IInAppBillingService does not exist

तो, कुछ ट्यूटोरियल्स के बाद, मैं इस फ़ाइल को com.mypackage.billing से src / main / aidl पर ले जाता हूं ( यह संदर्भ देखें)

लेकिन जैसे ही, मैं ऐसा करता हूं, मुझे यह संदेश मिलता है:

ग्रैडल: कार्य के लिए निष्पादन विफल: 'xxxxxxxxxxx: compileDebugAidl'।

आदेश चलाने में विफल: (...) सी: \ उपयोगकर्ता \ xxxx \ AndroidStudioProjects \ xxxxxx प्रोजेक्ट \ xxxxxxx \ src \ main \ aidl \ IInAppBillingService.aidl: 45 इंटरफ़ेस IInAppBillingService को com \ xxxxxxxx \ बिलिंग \ IInAppBillingService नामक फ़ाइल में घोषित किया जाना चाहिए .aidl।

संदेश स्पष्ट रूप से ऊपर दिए गए Google बग पेज से पोस्ट के साथ एक विरोधाभास है।

इस सहायता फ़ाइल को काम करने के लिए कोई भी सफल रहा है और मेरी मदद कर सकता है?

बस सूचित करने के लिए, मैंने कुछ लिंक का पालन किया:


इसे एक उत्तर के रूप में जोड़ना क्योंकि यह बहुत से लोगों की मदद करना प्रतीत होता था।

  1. 'Src / main /' के अंतर्गत 'aidl' नाम की एक नई निर्देशिका बनाएं । यह ' src / main / aidl ' जैसा दिखना चाहिए।
  2. एक नया पैकेज नाम ' com.android.vending.billing ' निर्देशिका में जोड़ें ' src / main / aidl '
  3. अपने एसडीके स्थान का पता लगाएँ और "sdk \ extras \ google \ play_billing" पर जाएं। एसडीके के लिए डिफ़ॉल्ट स्थान "सी: \ प्रोग्राम फ़ाइलें (x86) \ एंड्रॉइड \ android-sdk है"। यदि आपने कस्टम इसे बदल दिया है, तो आपको एसडीके प्रबंधक के माध्यम से स्थान का पता लगाना होगा।
  4. ऊपर बनाए गए पैकेज में 'IInAppBillingService.aidl' की प्रतिलिपि बनाएँ । अंत में, यह नीचे दी गई छवि के समान दिखना चाहिए।

  1. परियोजना को पुनर्निर्माण करें और इसे जाने के लिए अच्छा होना चाहिए।

नोट: यदि आपका संदर्भ काम नहीं कर रहा है तो सुनिश्चित करें कि आप आवश्यक आयात शामिल करते हैं

import com.android.vending.billing.IInAppBillingService;

https://issuetracker.google.com/issues/36973270

टिप्पणी से संपादित करें

ऐसा करने के बाद, मेरे कोड में IInAppBillingService के संदर्भ अभी भी त्रुटियों के रूप में हाइलाइट किए गए थे, लेकिन ऐप के पुनर्निर्माण के बाद, कक्षा को पहचाना गया था


एंड्रॉइड स्टूडियो को पुनरारंभ करना मेरे लिए काम करता है

एक दूसरी मूर्ख चीज जो मुझे थोड़ी देर ले गई। मैंने एंड्रॉइड स्टूडियो पर कोड को फ़ाइल बनाने की इजाजत देने के लिए कोड छोड़ दिया, लेकिन उसने एक .java (अपेक्षित के रूप में) की बजाय एक .aidl जिजी बनाया, मेरे बारे में बेवकूफ


जैसे ही त्रुटि संदेश कहता है, आपको इसके पैकेज (com.android.vending.billing) द्वारा निर्धारित सही निर्देशिका में IInAppBillingService.aidl डालना IInAppBillingService.aidl

आपके पास पहले से मौजूद src/main/aidl/ फ़ोल्डर के भीतर, .aidl फ़ाइल को com/android/vending/billing/ में डाल .aidl


मैंने हर समाधान की कोशिश की है, लेकिन समस्या यह थी कि एंड्रॉइड स्टूडियो ने मॉड्यूल के एक अलग प्रकार के मॉड्यूल में किसी भी स्पष्ट कारण के साथ संकलित किया था जिसमें एआईडीएल पैकेज शामिल हैं, जो सेटिंग्स द्वारा निर्दिष्ट किए गए थे। डीबग से रिलीज करने के लिए , इसलिए अन्य मॉड्यूल एआईडीएल पीकेजी नहीं देख सका। डीबग से रिलीज करने के लिए स्विचिंग और वापस मुड़ता है, मेरी समस्या हल हो गई।


यहां तक ​​कि बाकी पोस्ट्स मेरे लिए तब तक काम नहीं करती जब तक कि मैंने यहां दिखाए गए एक नए फ़ोल्डर को नहीं बनाया।


  • src/main नामक aidl तहत नई निर्देशिका बनाएं
  • निर्देशिका aidl पर राइट क्लिक करें, new->add package चुनें
  • पैकेज com.android.vending.billing का नाम दर्ज करें

  • निर्देशिका से Android/Sdk/extras/google/play_billing निर्देशिका से IInAppBillingService.aidl कॉपी करें IInAppBillingService.aidl App_name/app/src/main/aidl/com/android/vending/billing

  • अब इनएप बिलिंग कोडिंग के साथ आगे बढ़ें और इनएप से संबंधित सेवाओं को परिभाषित करते समय आपको एक त्रुटि can not resolve symbol IInAppBillingXXXXXX
  • अब एंड्रॉइड स्टूडियो मेनू से Build करने के लिए, Rebuild Project पर क्लिक करें। यह App_Name/app/build/generated/source/aidl/debug/com/android/vending/billing अंदर IInAppBillingService.java फ़ाइल जेनरेट करेगा। यह इस मुद्दे को हल करेगा।






aidl