2012-09-11 12 views
5

मैं अपने एंड्रॉइड प्रोजेक्ट में एसीआरए क्रैश रिपोर्ट सिस्टम स्थापित करने की कोशिश कर रहा हूं। अब, मेरी परियोजना पहले से ही कक्षा, गतिविधि वर्ग का विस्तार कर रही है। मैं फिर Acra परियोजना को कैसे कार्यान्वित कर सकता हूं?Acra: स्थापित करें, एप्लिकेशन - गतिविधि का विस्तार करें?

जैसा कि वे सामान्य तरीके से बताते हैं, आपको कक्षा बनाना है। मेरा आवेदन और आवेदन के साथ इसे विस्तारित करें। चूंकि मैं पहले से ही गतिविधि वर्ग का विस्तार कर रहा हूं, मुझे यकीन नहीं है कि क्या करना है ... वे कहते हैं: यदि आपके ऐप में पहले से ही एक एप्लिकेशन सबक्लास है, तो इस कक्षा में ACRA जोड़ें; हालांकि, मुझे नहीं पता कि मुझे यह कैसे करना चाहिए ..

धन्यवाद!

http://code.google.com/p/acra/wiki/BasicSetup

उत्तर

2

बस एक MyApplication वर्ग कि Application तक फैली हुई है बनाते हैं, वे onCreate() अधिभावी के बारे में क्या कहते हैं और फिर अपने AndroidManifest करने के लिए जाना है।

आपके पास होना चाहिए जैसे android:label या android:theme। बस android:name=".MyApplication" जोड़ें और आप जाने के लिए तैयार हैं।

ध्यान रखें कि यदि आपका पैकेज com.example.test है, MyApplication वहां होना चाहिए। यदि आप कहीं और MyAplication रखना चाहते हैं, तो आपको यह इंगित करना होगा कि यह कहां है।

उदाहरण के लिए, यदि आपके पैकेज com.example.test है और MyApplicationcom.example.test.application में है, तो आप android:name=".application.MyApplication अपने प्रकट करने के लिए जोड़ना होगा। मैं दृढ़ता से आपको अपने आवेदन के लिए एक पैकेज का उपयोग करने के लिए मजबूर करता हूं, क्योंकि यह आपके प्रोजेक्ट परमाणु बनाता है और इसे और अधिक प्रबंधनीय और लाभदायक बनाता है।

+0

खैर मैं बस किया था कि और पहली बात यह है की जरूरत है मुझे पता है कि मेरा ऐप अब और काम नहीं कर रहा है ...: 09-11 11: 00: 36.682: डब्ल्यू/दल्विकविक (60 9 0): थ्रेडिड = 1: बिना अपवाद के समूह से निकलने वाला थ्रेड (समूह = 0x4001d560) 09-11 11: 00: 36.682: ई/एसीआरए (60 9 0): एसीआरए com.roid के लिए एक रनटाइम अपवाद अपवाद पकड़ा। बिल्डिंग रिपोर्ट –

+0

क्या स्टैक्रेट में एक और नेस्टेड अपवाद के साथ "कारण: ...." है? इससे आपको यह पता चलना चाहिए कि क्या गलत हुआ। –

-1

वैश्विक एप्लिकेशन स्थिति को बनाए रखने के लिए एक एप्लिकेशन उप वर्ग की आवश्यकता है, प्रत्येक ऐप के लिए यह सब वर्ग के लिए आवश्यक नहीं है। यदि आपके पास ऐप में अभी तक कोई नहीं है, तो आप इसे बना सकते हैं।

उदाहरण:

/* do ACRA imports */ 
@ReportsCrashes(formKey = "x-x-x-x-x-x") 
public class YourApplication extends Application{ 

public void onCreate(){ 
    ACRA.init(this); 
    super.onCreate(); 
} 
} 

तुम भी रूप में ट्यूटोरियल में कहा गया है मैनिफ़ेस्ट फ़ाइल में घोषित करना चाहिए।

1

मैंने एक विस्तृत ट्यूटोरियल पोस्ट किया है। यह आपको मौजूदा प्रोजेक्ट के लिए एसीआरए सेट करने और इसे अपने ईमेल पते पर एक ईमेल भेजने के लिए कॉन्फ़िगर करने देता है। Link

0

मैनिफेस्ट के कारण एप्लिकेशन का उपयोग किया जाता है।

android:name=".MyApplication" 

पूर्व: प्रकट में, यह सिर्फ (अंदर सभी गतिविधियों के साथ) आवेदन टैग में जोड़ने के लिए है

<application 
    android:allowBackup="true" 
    android:icon="@drawable/ic_launcher" 
    android:label="@string/app_name" 
    android:name=".MyApplication" 
    android:theme="@style/AppTheme" > 
आसान प्रारंभ की वजह से

(के रूप में यह स्वतः ही से आरंभ नहीं हो जाता लॉन्च पर एंड्रॉइड सिस्टम) यह कभी भी की रिपोर्ट नहीं करेगा। यह स्टार्टअप पर तुरंत क्रैश हो सकता है और अभी भी रिपोर्ट कर सकता है। तो यह वास्तव में एक स्मार्ट सेटअप है।

मेरा आवेदन वर्ग इस तरह दिखता है:

@ReportsCrashes(

    formUri = "https://backend.com", 
    customReportContent = { /* */ReportField.APP_VERSION_NAME, ReportField.PACKAGE_NAME,ReportField.ANDROID_VERSION, ReportField.PHONE_MODEL,ReportField.LOGCAT }, 
    mode = ReportingInteractionMode.TOAST, 
    resToastText = R.string.crash_toast_text 

) 

public class ACRAHandler extends Application { 


    @Override 
    protected void attachBaseContext(Context base) { 
     super.attachBaseContext(base); 


     final ACRAConfiguration config = new ConfigurationBuilder(this) 

       .build(); 
     // Initialise ACRA 
     ACRA.init(this, config); 

    } 



} 

एक उदाहरण के लिए आप Firebase उपयोग कर रहे हैं, तो आप दोनों एक साथ एक ही आवेदन-विस्तार कक्षा में किसी भी मुद्दे के बिना उपयोग कर सकते हैं।मैंने इसे स्वयं करने की कोशिश की और यह काम किया, त्रुटि रिपोर्टिंग या फायरबेस के साथ कोई समस्या नहीं है।

साथ ही, ACRA के लिए नई लिंक Github पर है: https://github.com/ACRA/acra/wiki/BasicSetup

मैं इस जवाब, क्योंकि यह बहुत पहले जवाब आया था और यह एक अद्यतन