2013-02-28 7 views
7

के उपयोग मैं Android एप्लिकेशन के लिए Proguard और डैगर के उपयोग करने के लिए नए कर रहा हूँ के साथ निर्माण, इसलिए मैं वास्तव में अगर कोई मुझे कुछ संकेत दे सकता है की सराहना करेंगे।एंड्रॉयड एप्लिकेशन रिलीज़ पर दुर्घटनाओं Proguard और डैगर

Proguard और डैगर आवेदन में लागू किया गया है। जब ऐप डीबग मोड (यानी ग्रहण से धक्का दिया जाता है) के माध्यम से स्थापित किया जाता है, तो ऐप चलाने में कोई समस्या नहीं होती है।

No injectable members on com.example.test.d. Do you want to add an injectable constructor? required by com.example.test.d com.example.test.SampleActivity.a 
No injectable members on com.b.a.b. Do you want to add an injectable constructor? required by com.b.a.b com.example.test.SampleActivity.b 
    at dagger.internal.h.a(ThrowingErrorHandler.java:34) 
    at dagger.internal.Linker.a(Linker.java:136) 
    at dagger.d.a(ObjectGraph.java:264) 
    at dagger.d.a(ObjectGraph.java:238) 
    at com.example.test.SampleApplication.a(SampleApplication.java:24) 

मैं से सुझाव का पालन किया है:: https://plus.google.com/108620120050432268974/posts/AAjvwg3Hmgg, ProGuard-project.txt में निम्नलिखित को लागू करने से:

हालांकि, जब मैं अनुप्रयोग की रिहाई का निर्माण चलाने के लिए, यह निम्नलिखित का पता लगाने के साथ दुर्घटनाओं
-keep class * extends dagger.internal.Binding 
-keep class * extends dagger.internal.ModuleAdapter 
-keep class * extends dagger.internal.StaticInjection 

लेकिन यह समस्या को ठीक करने के लिए प्रतीत नहीं होता है। सुझाव? अग्रिम में धन्यवाद।

उत्तर

2

प्रोगुआर्ड और डैगर (प्री) -मिशन रिलीज बिल्ड में अच्छी तरह से काम नहीं कर रहा है। देखें https://plus.google.com/117210567825404150882/posts/HGjnJJHbfMj

"समस्या" है कि गैर सुलझा पैकेज के नाम वर्गों में संकलित किया जाएगा है।

0

क्या आपने इसे प्रोजेवार्ड कॉन्फ़िगरेशन फ़ाइल में जोड़ा है?

-keepattributes *Annotation* 
+0

मैंने कोशिश की, लेकिन यह काम नहीं किया। फिर भी आपका धन्यवाद! – ShannonS

0

https://stackoverflow.com/a/18109765/654026 पर एक नज़र सिर्फ मामले में यह तुम बाहर में मदद करता है है। वहां आपको मेरे ऐप के लिए प्रोगार्ड कॉन्फ़िगरेशन पर कुछ विवरण दिखाई देंगे जो मुझे डैगर का उपयोग करते समय ऐप क्रैश को छोड़ने की अनुमति देता है।

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