2013-08-27 6 views
10

प्रेषण नहीं किया जा सका मैं एक हस्ताक्षरित एप्लिकेशन निर्यात करने के लिए कोशिश कर रहा हूँ और जब मैं अपने अनुप्रयोग चलाने मैं इस अपवादEventBus और Proguard: घटना

Could not dispatch event: class com.achlan.myapp.events.e to subscribing class class com.achlan.myapp.b.d 

mapping.txt मिलती है:

com.achlan.myapp.events.RestResult -> com.achlan.myapp.events.e 
com.achlan.myapp.data.DataManager -> com.achlan.myapp.b.d: 

मैं मैंने पहले से ही इस प्रोजेक्ट कॉन्फ़िगर कॉन्फ़िगरेशन में जोड़ा है:

-keepclassmembers class ** { 
public void onEvent*(**); } 

क्या मुझे अपने प्रोजेर्ड कॉन्फ़िगरेशन में कुछ याद आ रही है?

+1

स्टैक ट्रेस के बिना, इवेंटबस इश्यू ट्रैकर पर शायद कोई समस्या दर्ज करने के अलावा, मैं सुझाव नहीं दे सकता हूं। – CommonsWare

उत्तर

0

विधि को भ्रमित न करें। मैं इस तरह कार्य करें:

अगर मैं

EventBus.getDefault().register(this, "getName", Name.class); 

का उपयोग मैं क्या करेंगे

-keepclassmembers class ** { 
    public void getName(**); 
} 

यह काम कर सकते हैं।

+0

आपको अपने उत्तर को समझाने की जरूरत है। – Yaje

+0

धन्यवाद, लेकिन मैं इसे प्राप्त करने वाले ईवेंटबस फ़ंक्शन की घोषणा किए बिना ऐसा करने की कोशिश कर रहा हूं। वैसे भी, मैंने आपके समाधान की कोशिश की है और मैं इसे काम नहीं कर सकता। – Achlan

0

आप एक गैर सार्वजनिक (पैकेज निजी) onEvent विधि का उपयोग करें यदि आप इस प्रकार अपने progaurd कॉन्फिग अद्यतन करने के लिए की आवश्यकता होगी:

-keepclassmembers class ** { 
    public void onEvent*(**); 
    void onEvent*(**); 
} 
+0

धन्यवाद लेकिन मेरे कोड में प्रत्येक ऑनवेंट विधि सार्वजनिक है। – Achlan

+0

यदि आपके पास 'void onEvent * (**) है;', मुझे नहीं लगता कि आपको 'सार्वजनिक शून्य' (**); '' पर सार्वजनिक शून्य की आवश्यकता होगी; – manfcas

4

मैं भी EventBus और ProGuard के साथ एक समस्या थी और मैं ProGuard के निर्माता से संपर्क किया

-keepclassmembers,includedescriptorclasses class ** { public void onEvent*(**); } 

अपने कॉन्फ़िग फ़ाइल को includedescriptorclasses जोड़े विधि नाम के एक प्रत्यय जोड़ना ProGuard/DexGuard के अनुकूलन कदम को रोकने के लिए:/DexGuard और वह मेरा पीछा 'वैकल्पिक हल' जो मदद कर सकता है भेजा है।

+0

वाह, यह वास्तव में काम करता है, धन्यवाद। –

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