2010-02-01 23 views
11

मेरा प्रश्न कमांड लाइन से aidl.exe (विंडोज सिस्टम पर) का उपयोग करने से संबंधित है।मैं एसडीके नमूना कोड का उपयोग कर कमांड लाइन से एआईडीएल उपकरण का उपयोग कैसे करूं?

IRemoteService.aidl IRemoteServiceCallback.aidl ISecondary.aidl

स्थित: यह सवाल तीन AIDL परिभाषा फ़ाइलों का अनुसरण कर रहे ग्रहण, NetBeans के साथ कोई लेना देना नहीं है, आदि

Android SDK के साथ शामिल है

C: निम्न निर्देशिका में \ Android-SDK-windows \ प्लेटफार्मों \ एंड्रॉयड-2.1 \ नमूने \ ApiDemos \ src \ कॉम \ उदाहरण \ एंड्रॉयड \ apis \ एप्लिकेशन

सादगी के लिए, मैंने उपरोक्त निर्देशिका में aidl.exe की प्रतिलिपि बनाई। फिर, एक कंसोल विंडो से, मैं सफलतापूर्वक निम्न दो आदेशों इस्तेमाल किया जावा उत्पन्न करने के लिए फ़ाइलों:

C: \ एंड्रॉयड परियोजना \ ApiDemos \ src \ कॉम \ उदाहरण \ एंड्रॉयड \ apis \ ऐप> AIDL IRemoteServiceCallback.aidl सी: \ एंड्रॉइड-प्रोजेक्ट \ ApiDemos \ src \ com \ example \ android \ apis \ app> aidl ISecondary.aidl

इन आदेशों को आमंत्रित करने से क्रमशः IRemoteServiceCallback.java और ISecondary.java फ़ाइलें उत्पन्न हुईं। अब तक सब ठीक है।

मुझे लगता है कि दोनों .aidl फ़ाइलें सरल हैं; उनमें कोई 'आयात' कथन शामिल नहीं है।

शेष .aidl फ़ाइल, IRemoteService.aidl, लाइन 19 पर निम्नलिखित इंपोर्ट स्टेटमेंट शामिल होते हैं:

आयात com.example.android.apis.app.IRemoteServiceCallback;

समस्या

उठता है जब मैं इस फाइल पर AIDL उपकरण चलाएँ:

IRemoteService.aidl:: 19:

C:\Android-project\ApiDemos\src\com\example\android\apis\app>aidl IRemoteService.aidl 

ऐसा करने से निम्न त्रुटि संदेश का कारण बनता है कंसोल विंडो में मुद्रित करने के लिए नहीं किया जा सका क्लास com.example.android.apis.app.iremoteServiceCallback

एआईडीएल उपकरण स्पष्ट रूप से उसी निर्देशिका में IRemoteServiceCallback.aidl फ़ाइल का पता नहीं लगा सका, जिसमें वह चल रहा था। AIDL उपकरण के "उपयोग" संदेश के अनुसार, वहाँ एक आदेश है कि जाहिरा तौर पर इस समस्या को हल करने के लिए इस्तेमाल किया जा सकता है:

-I<DIR> search path for import statements. 

समस्या: मैं से बचने के लिए के रूप में इस तरह से मैं निर्दिष्ट करने के लिए सक्षम नहीं किया गया त्रुटि संदेश और एआईडीएल उपकरण एक .java फ़ाइल जेनरेट फ़ाइल से 'आयात' कथन के साथ उत्पन्न करता है। (नोट: मैं अपने वर्तमान निर्देशिका करने के लिए Windows वातावरण चर 'पथ' की स्थापना की।) यहाँ कुछ रूपों मैं कोशिश की है इस प्रकार हैं:

-Ic:\com\example\android\apis\app 
-Ic:/com/example/android/apis/app 
-I.\ 
-I. 

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

धन्यवाद, मैट

उत्तर

11

मुझे समाधान मिला: आपको स्रोत फ़ाइलों को फ़ोल्डर पथ प्रदान करना होगा, लेकिन मूल स्रोत फ़ोल्डर के बाद पथ के बिना। तो, आपके मामले में सही आदेश है: सी: \ Android-project \ ApiDemos \ src \ com \ example \ android \ apis \ app> aidl -IC: \ Android-project \ ApiDemos \ src \ IRemoteService.aidl

+0

मुझे लगता है कि यह इंटरनेट पर एकमात्र जगह है जिसे दस्तावेज किया गया है। धन्यवाद, आप नायक हैं। – benkc

3

तुम उल्लेख के रूप में, वहाँ बहुत प्रलेखन नहीं है।

तो अगर आप वर्बोज़ सक्षम ग्रहण में उत्पादन का निर्माण (विंडो के तहत> Preferences> एंड्रॉयड> निर्माण, मुझे लगता है कि), तो आप कंसोल aidl और aapt सहित, क्या आज्ञा में देख सकते हैं, क्रियान्वित कर रहे हैं जब Eclipse प्लग निर्माण करता है ।

वैकल्पिक रूप से, यदि आप सी को समझ सकते हैं तो आप एओएसपी में सहायता स्रोत कोड देख सकते हैं।

+0

Mmmmm को, वर्बोज़ बनाता -p जोड़ने की जरूरत है - ज्यादा बेहतर। धन्यवाद, क्रिस्टोफर – JohnnyLambada

4

यह Google पर 3 घंटे बेकार खोज और यांडेक्स पर 1,5 घंटे की खोज लेता है। यहाँ समाधान है:

http://programmingissues.wordpress.com/2011/07/22/cant-use-aidl-file-in-eclipse-android-project/

आप/path// framework.aidl कुंजी

+0

आपने मेरा दिन बनाया! बीटीडब्लू, एल्पल का -पी ध्वज का अपना वर्णन बेवकूफ है। – rustyx

+0

उस दिमित्री के लिए धन्यवाद, वास्तव में मुझे भी मदद की। – Aranda

संबंधित मुद्दे