2016-06-16 15 views
6

पर myserver.com पर Cleartext HTTP ट्रैफ़िक की अनुमति नहीं है कल मुझे एंड्रॉइड एन पूर्वावलोकन के लिए एक नया अपग्रेड मिला। जब से मैंने अपग्रेड किया, तब से मैं अब अपना ऐप शुरू नहीं कर सकता।एंड्रॉइड एन पूर्वावलोकन

java.io.IOException: Cleartext HTTP traffic to myserver.com not permitted 

मैं प्रकट में usesCleartextTraffictrue करने के लिए सेट करने के लिए या एक network_security_config.xml

<?xml version="1.0" encoding="utf-8"?> 
<network-security-config> 
    <domain-config cleartextTrafficPermitted="true"> 
     <domain includeSubdomains="true">myserver.com</domain> 
    </domain-config> 
</network-security-config> 

न तो किया था काम जोड़ने की कोशिश की है। क्या हो रहा है इसके बारे में कोई विचार?

जब मैं प्रकट में networkSecurityConfig परिभाषित करने की कोशिश, मैं एक संकलन त्रुटि

Error:(35) No resource identifier found for attribute 'networkSecurityConfig' in package 'android' 
नहीं

वास्तव में यकीन है कि क्यों मिलता है। फाइल वहां है और सबकुछ अच्छा दिखता है।

Google के Android समस्या ट्रैकर में मिला this सुझाव। वे परिभाषा को meta-data पर ले जाने का सुझाव देते हैं। हालांकि मुझे अभी भी एक ही अपवाद मिलता है।

+0

बस यह सुनिश्चित करने के लिए, आपने वास्तव में कॉन्फ़िगर फ़ाइल का उपयोग करने के लिए अपने ऐप को बताया था? जैसे 'android: networkSecurityConfig =" @ xml/network_security_config "' आपके एप्लिकेशन मेनिफेस्ट में। – vcsjones

+0

मुझे यह समस्या प्रतीत नहीं होती है, कम से कम ऐप में मैंने अभी परीक्षण किया है। Plaintext HTTP यातायात ठीक है। आप एक पूर्ण अनइंस्टॉल करने और ऐप की पुनर्स्थापित करने का प्रयास कर सकते हैं। इसके अलावा, क्या आप 'सख्त मोड' का उपयोग कर रहे हैं? शायद [ 'detectCleartextNetwork()'] (https://developer.android.com/reference/android/os/StrictMode.VmPolicy.Builder.html#detectCleartextNetwork()) – CommonsWare

+0

चालू किया जा रहा है मैं स्थापना हटाई और पुन: स्थापित कई बार पहले से ही और मैं StrictMode का उपयोग नहीं कर रहा हूँ। मैनिफेस्ट में नेटवर्क सुरक्षा कॉन्फ़िगर को परिभाषित करने में सक्षम नहीं हूं। मैं प्रश्न – SimonSays

उत्तर

9

एंड्रॉयड एन डेवलपर पूर्वावलोकन 4 जहां, यदि किसी ऐप अपने ApplicationInfo.flags संशोधित करता है, यह ऐप्लिकेशन से क्लियर यातायात को अवरुद्ध से चलाता है, एप्लिकेशन क्लियर यातायात का अनुरोध नहीं किया है, भले ही अवरुद्ध होने में एक ज्ञात मुद्दा नहीं है। फिक्स अगले डेवलपर पूर्वावलोकन में है। इस प्रकार, इसका आपके नेटवर्क सुरक्षा कॉन्फ़िगरेशन से कोई लेना देना नहीं है। वास्तव में, ऐसा लगता है कि आपको कस्टम नेटवर्क सुरक्षा कॉन्फ़िगरेशन घोषित करने की भी आवश्यकता नहीं है।

यदि आप इंतजार नहीं कर सकता जब तक अगले एंड्रॉयड एन डेवलपर पूर्वावलोकन, स्थानों के लिए अपने अनुप्रयोग की जाँच जहां यह अपने आप ही ApplicationInfo.flags संशोधित करता है। आम तौर पर यह getApplicationInfo().flags &= ApplicationInfo.FLAG_DEBUGGABLE या getApplicationInfo().flags = ApplicationInfo.FLAG_DEBUGGABLE का रूप लेता है। इन उपयोगों के लिए फिक्स (getApplicationInfo().flags & ApplicationInfo.FLAG_DEBUGGABLE) है।

वैकल्पिक रूप से, एक समाधान के रूप, NetworkSecurityPolicy.isCleartextTrafficPermitted() जितनी जल्दी हो सके को अपने ऐप्लिकेशन के जीवन चक्र में आह्वान। अगर ApplicationInfo.flags के साथ टैम्पर्स कोड से पहले कहा जाता है तो यह कामकाज काम करना चाहिए।

+0

बहुत बढ़िया! वह यह था! बहुत बहुत धन्यवाद! – SimonSays

+0

बस उत्सुक, क्या आपको पता चला कि आपका ऐप गलती से अपने 'ApplicationInfo.flags' को संशोधित कर रहा था? –

+0

हां यह था। हमने एक '& =' का उपयोग एक सरल '&' के बजाय चेक के लिए किया था – SimonSays

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