2015-11-22 11 views
11

मैं Cling का उपयोग करके एप्लिकेशन बनाया है और ठीक काम कर रहा है, लेकिन मैं संदेश और कुछ भी नहीं निम्नलिखित हो जब मैं रिहाई का निर्माण बनाने रेंडरर पर खेलता है:एंड्रॉयड क्लिंग/UPnP ProGuard

:

11-22 16:24:53.341 20172-20172/? I/RendererCommand﹕ TrackMetadata : TrackMetadata [id=1, title=IMG-20151120-WA0007, artist=, genre=, artURI=res=http://192.168.1.4:8089/1.jpg, itemClass=object.item.imageItem] 
11-22 16:24:53.345 20172-20172/? V/RendererCommand﹕ Resume 
11-22 16:24:53.351 20172-20301/? W/RendererCommand﹕ Fail to stop ! Error: Current state of service prevents invoking that action. Error writing request message. Can't transform message payload: java.lang.ClassCastException: java.lang.Class cannot be cast to java.lang.reflect.ParameterizedType. (HTTP response was: 500 Internal Server Error) 
11-22 16:24:53.351 20172-20301/? I/RendererCommand﹕ Set uri to http://192.168.1.4:8089/1.jpg 
11-22 16:24:53.353 20172-20386/? D/RendererCommand﹕ Update state ! 
11-22 16:24:53.354 20172-20264/? W/RendererCommand﹕ Fail to set URI ! Error: Current state of service prevents invoking that action. Error writing request message. Can't transform message payload: java.lang.ClassCastException: java.lang.Class cannot be cast to java.lang.reflect.ParameterizedType. (HTTP response was: 500 Internal Server Error) 
11-22 16:24:53.354 20172-20262/? W/RendererCommand﹕ Fail to get position info ! Error: Current state of service prevents invoking that action. Error writing request message. Can't transform message payload: java.lang.ClassCastException: java.lang.Class cannot be cast to java.lang.reflect.ParameterizedType. (HTTP response was: 500 Internal Server Error) 
11-22 16:24:54.354 20172-20386/? D/RendererCommand﹕ Update state ! 

नीचे मेरी ProGuard enteries है

-dontoptimize 
-dontshrink 
-dontskipnonpubliclibraryclasses 
-dontpreverify 
-allowaccessmodification 
-verbose 

-dontwarn org.fourthline.cling.** 
-dontwarn org.seamless.** 
-dontwarn org.eclipse.jetty.** 
-dontwarn android.support.v4.app.** 
-dontwarn android.support.design.widget.** 

-keep public class * extends android.app.Activity 
-keep public class * extends android.app.Application 
-keep public class * extends android.app.Service 
-keep public class * extends android.content.BroadcastReceiver 
-keep public class * extends android.content.ContentProvider 
-keep public class * extends android.app.backup.BackupAgentHelper 
-keep public class * extends android.preference.Preference 
-keep public class com.android.vending.licensing.ILicensingService 
-keep class javax.** { *; } 
-keep class org.** { *; } 
-keep class org.fourthline.cling.** { *;} 
-keep class org.seamless.** { *;} 
-keep class org.eclipse.jetty.** { *;} 
-keep class org.slf4j.** { *;} 
-keep class javax.servlet.** { *;} 

-keepclasseswithmembernames class * { 
    native <methods>; 
} 

-keepclasseswithmembernames class * { 
    public <init>(android.content.Context, android.util.AttributeSet); 
} 

-keepclasseswithmembernames class * { 
    public <init>(android.content.Context, android.util.AttributeSet, int); 
} 

-keepclassmembers enum * { 
    public static **[] values(); 
    public static ** valueOf(java.lang.String); 
} 


-keep class * implements android.os.Parcelable { 
    public static final android.os.Parcelable$Creator *; 
} 

-keep class android.support.v4.app.** { *; } 
-keep interface android.support.v4.app.** { *; } 

-keepattributes *Annotation* 
+1

की है आप एक "HTTP प्रतिक्रिया थी: 500 आंतरिक सर्वर त्रुटि" आप अपने सर्वर पर त्रुटि जाँच करते हैं? – LaurentY

+1

हां यह बहुत अजीब है कि एक ही सर्वर क्रोमकास्ट के साथ ठीक काम करता है लेकिन प्रोजेवार्ड चलाने के बाद अपनिप के साथ नहीं, बस – ingsaurabh

+0

ठीक है लेकिन सर्वर पर त्रुटि क्या है? मुझे यकीन है कि सर्वर पर त्रुटि 500 ​​लॉग है। कृपया इसे सर्वर – LaurentY

उत्तर

8

ठीक पढ़ने ProGuard मैनुअल होने, और कई हिट और परीक्षणों मैं अंत में संशोधित करके यह किया होने के बाद

के लिए ऊपर prguard फ़ाइल की अंतिम पंक्ति -keepattributes एनोटेशन, InnerClasses, हस्ताक्षर

और हर चीज ठीक

ProGuard

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

और इस मुद्दे प्रतिबिंब

2

ProGuard क्लिंग lib में यानी छू वर्गों/इंटरफेस को भ्रष्ट कर रहा है और आपको लगता है कि को रोकने के लिए की जरूरत है ...

आप here संभालने शुरू कर सकता है आपको प्रोगार्ड के साथ समस्या है जो जेटी/एचटीपी स्टैक से संबंधित कुछ नेटवर्किंग को छूता है जो मुझे आपकी त्रुटि की सामग्री से लगता है। जंगली अनुमान यह है कि जैसे कि http इकाई या निकाय को उचित इंटरफेस को लागू करने के रूप में संभाला नहीं जा सकता ... आप उस पुस्तकालय में सभी इंटरफेस से बचने के लिए प्रोजेगार्ड कॉन्फ़िगर करना चाहते हैं और आपके पास अपने प्रोजेवार्ड में "इंटरफ़ेस रखें" निर्देश नहीं हैं ..

उदाहरण के लिए, क्या आप प्रोजेगार्ड को 'org.eclipse.jetty' में किसी भी इंटरफेस को छूने के लिए नहीं कह रहे हैं। आप ऐसा नहीं कर रहे हैं और आप शायद चाहें।

-keepinterface के लिए here

ProGuard स्कैन मैनुअल घाट संकुल अपने lib में सर्वर/http कनेक्शन को लागू करने के साथ उपयोग करने के लिए देखते हैं।

  1. 'चिपटना' संकुल/आंतरिक क्लाइंट-सर्वर और अपने पुस्तकालय में आंतरिक नेटवर्किंग ढेर कार्यान्वयन के आसपास इंटरफेस बारे में अधिक पता (लग रहा है यह http जैसे कुछ प्रोटोकॉल पर सीएस कनेक्शन के लिए घाट लागू करता है) की तरह

  2. अपने proguard कॉन्फ़िगरेशन की तुलना करने के लिए lib के जार/संग्रह पर एक पैकेज सूची बनाएं। जेटी के सर्वर कार्यान्वयन द्वारा उपयोग किए जाने वाले इंटरफेस पर विशेष ध्यान दें "jar -tf my.jar | sort | uniq" या कुछ ऐसे

  3. 'mapping.txt' में और 'seed.txt' में प्रोजेवार्ड द्वारा क्या किया गया है, इसे देखें। 'explain here। संकुल & सूचियों के साथ उन संबंधित सूचियों से उन संकुल नामों को छेड़छाड़ करें जिन्हें आप उपरोक्त समेकित करना चाहते हैं। 'बीज' में आपके जेटी वर्ग/इंटरफेस होना चाहिए। 'मैपिंग' नहीं होना चाहिए!

+1

हर संभव संयोजन का प्रयास करता है लेकिन अभी भी एक ही त्रुटि संदेश है, – ingsaurabh

0

शायद तुम -keepclassmembers इस रूप में पैकेज org.fourthline.cling के लिए -keep class के अलावा जोड़ने की कोशिश कर सकते हैं:

-keep class org.fourthline.cling.** { *;} 
-keepclassmembers class org.fourthline.cling.** { *;} 
+0

चिपकने से आगे बढ़ने पर विचार करना काम नहीं कर रहा – ingsaurabh

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