2011-10-28 9 views
5

मैं एंड्रॉइड के लिए ACRA का उपयोग कर रहा हूं, और मैं क्रैश रिपोर्ट को अपने सर्वर पर भेजना चाहता हूं। मैंने इसे ठीक से सेट कर दिया है, और सब कुछ ठीक काम करता है। हालांकि, मैं यूआरएल बनाना चाहता हूं कि रिपोर्ट कॉन्फ़िगर करने योग्य को भेजी जाती है। लेकिन मुझे नहीं पता कि यह कैसे करना है।स्वयं होस्ट किए गए सर्वर को रिपोर्ट भेजते समय एंड्रॉइड के लिए एसीआरए के साथ कॉन्फ़िगर करने योग्य यूआरएल?

यहाँ कोड मैं तो मूल रूप से यूआरएल

@ReportsCrashes(formKey = "", // will not be used 
      formUri = "http://yourserver.com/yourscript", 
      formUriBasicAuthLogin = "yourlogin", // optional 
      formUriBasicAuthPassword = "y0uRpa$$w0rd", // optional 
      mode = ReportingInteractionMode.TOAST, 
      resToastText = R.string.crash_toast_text) 
    public class MyApplication extends Application { 
    ... 

स्थापित करने के लिए इस्तेमाल करते हैं, मैं आवेदन के भीतर से formUri कॉन्फ़िगर करने के लिए सक्षम होने के लिए wan't। क्या यह संभव है?

उत्तर

3

हो सकता है कि मैं थोड़ा एक प्रश्न पोस्ट करने के लिए जल्दी क्योंकि मैंने पाया है कि कैसे अपने आप से यह करने के लिए किया गया था, ... लेकिन यूआरएल कोड की निम्न पंक्ति के साथ बदला जा सकता है:

ErrorReporter.getInstance().setReportSender(new HttpPostSender(newAddress, null)); 

संपादित करें: पुराना उत्तर, bendvds अद्यतन उत्तर

9

ऐसा लगता है त्रुटिReporter.getInstance अब बहिष्कृत है, लेकिन निम्न पंक्तियों का एक ही प्रभाव है। ACRA.init को कॉल करने से पहले उन्हें निष्पादित करें।

ACRAConfiguration config = ACRA.getConfig(); 
config.setFormUri("http://server.com/script"); 
ACRA.setConfig(config); 
0

मैं benvd के उत्तर पर टिप्पणी करना पसंद करूंगा, लेकिन मेरे पास पर्याप्त पर्याप्त प्रतिष्ठा नहीं है।

ACRA.getConfig() पूरी तरह से रिक्त कॉन्फ़िगरेशन प्रदान करने वाले @ReportsCrashes के भीतर सभी सेटिंग्स को अनदेखा करता है। ACRA.getNewDefaultConfig() आपकी बिल्ड सेटिंग्स के साथ एक नई कॉन्फ़िगर ऑब्जेक्ट देता है, लेकिन अभी भी उरी गतिशील रूप से बदल सकता है। अपने प्रश्न के लिए

ACRAConfiguration config = ACRA.getNewDefaultConfig(); 
config.setFormUri("http://server.com/script"); 
ACRA.setConfig(config); 
0

सही जवाब ACRA : Advanced usage

हर @ReportsCrashes पैरामीटर भी क्रम पर सेट किया जा सकता पर पाया। एडीटी 17 के बाद इसकी आवश्यकता थी, जहां एंड्रॉइड लाइब्रेरी प्रोजेक्ट्स का इस्तेमाल एसीआरए के साथ नहीं किया जा सकता था क्योंकि उनके संसाधन पहचानकर्ता अब अंतिम क्षेत्र नहीं हैं। कुछ उन्नत डेवलपर्स को उपयोगकर्ता विकल्पों के आधार पर या विशेष डीबग मोड के आधार पर एसीआरए पैरामीटर समायोजित करने की भी आवश्यकता होती है।

विधि ACRA.getConfig() एक ACRAConfiguration ऑब्जेक्ट देता है जो प्रत्येक @ReportsCrashes कॉन्फ़िगरेशन आइटम के लिए एक सेटटर प्रदान करता है।

आप ACRA.getNewDefaultConfig (एप्लिकेशन) का उपयोग भी कर सकते हैं ताकि एक नई कॉन्फ़िगरेशन ऑब्जेक्ट को डिफ़ॉल्ट मानों के साथ शुरू किया जा सके + आपके एनोटेशन पैरामीटर में सेट मान, कुछ मान संशोधित करें, ऑब्जेक्ट को बाद में उपयोग के लिए स्मृति में रखें, और इसे ACRA पर सेट करें आवश्यकता होने पर .setConfig (ACRAConfiguration)।

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