2013-07-15 11 views
11

चलाने के लिए प्रतीत नहीं होता है, मैंने पिछले कुछ दिनों में एक्लिप्स से एंड्रॉइड स्टूडियो में स्विच किया है और अधिकांश चीज़ों को काम कर लिया है। हालांकि, जब मैं एक हस्ताक्षरित एपीके उत्पन्न करता हूं तो ऐसा प्रतीत होता है कि ProGuard कभी नहीं चल रहा है।एंड्रॉइड स्टूडियो प्रोगार्ड

मैं जेनरेट साइन किए गए एपीके विज़ार्ड का उपयोग कर रहा हूं, 'रन प्रोगार्ड' का चयन कर रहा हूं और कॉन्फ़िगर फ़ाइल के रूप में अपना proguard.cfg निर्दिष्ट कर रहा हूं। निर्माण प्रक्रिया त्रुटियों के बिना चलती है और एक कार्यात्मक एपीके उत्पन्न करती है, लेकिन यह एपीके ग्रहण द्वारा उत्पन्न एक से 65% बड़ा है। जब मैं एंड्रॉइड स्टूडियो के एपीके विज़ार्ड के माध्यम से एपीके उत्पन्न करता हूं और 'रन प्रोग्रार्ड' का चयन नहीं करता हूं तो परिणामी एपीके उसी आकार के समान होता है जिस पर ProGuard चलाना चाहिए था। मेरी प्रोजेक्ट निर्देशिका में कहीं भी mapping.txt, seed.txt, या use.txt उत्पन्न नहीं होता है। मैं

buildTypes { 
    release { 
     runProguard true 
     proguardFile file('proguard.cfg') 
     proguardFile getDefaultProguardFile('project-android.txt') 
    } 
} 

और मेरे build.gradle फाइल करने के लिए कीवर्ड्स को की कोशिश की है, लेकिन है कि या तो कोई प्रभाव नहीं पड़ा है।

यह एंड्रॉइड स्टूडियो 0.2.0 पर होता है, हालांकि मैं 0.1.9 पर एक ही व्यवहार देख रहा था। मैं विंडोज 7 पर काम कर रहा हूं।

क्या कोई मुझे बता सकता है कि क्या हो रहा है? अगर मैं प्रोगार्ड उत्पन्न करना चाहता हूं तो मुझे खुशी होगी।

+0

मैं ProGuard या तो चलाने के लिए सक्षम नहीं किया जा रहा हूँ मदद करता है। क्या आप बिल्ड -> साइन अप एपीके जेनरेट के माध्यम से एपीके उत्पन्न कर रहे हैं? यदि हां, तो आप निम्न संवाद में किस प्रोजेक्ट फ़ाइल का चयन करते हैं? हालांकि विन्यास फाइल "उत्पन्न हस्ताक्षरित APK" प्रक्रिया के दौरान प्रदान की जाती है वहाँ, प्रलेखन ... –

+0

मैं बिल्कुल वैसा ही, समर्थक गार्ड कुछ नहीं करता का सामना कर रहा हूँ पर इस बारे में बहुत कम जानकारी है। दुर्भाग्य से प्रो गार्ड के साथ काम कर रहे एंड्रॉइड स्टूडियो के बारे में शायद ही कोई जानकारी है। इसके अलावा यहां सवाल ने कहा: http://stackoverflow.com/questions/18087664/generating-a-pro-guard-configuration-file-with-android-studio#comment26529592_18093805 –

उत्तर

2

खुशी से, मुझे एक समाधान मिला है। मुद्दा यह था कि हस्ताक्षरित एपीके बनाने से पहले, मैंने Google Play Store में किसी विशेष निर्माण को ओवरराइट करने के लिए AndroidManifest में पैकेज नाम को संशोधित किया था। हालांकि, पैकेज नाम के इस परिवर्तन ने सभी संबंधित "आयात" पैकेज नाम 'आरआर; कोड भर में लाइनें। आज, परियोजना को फिर से आयात करने के बाद, यह अब आयात करने की कोशिश में त्रुटियों के कारण निर्माण नहीं करेगा। एक बार जब मैंने सभी आयात लाइनों को संशोधित किया, न केवल मेरी परियोजना ठीक से बनाई गई, लेकिन हस्ताक्षरित एपीके का निर्यात ठीक से ProGuard चला गया।

मुझे लगता है कि एंड्रॉइड स्टूडियो किसी भी तरह से "आयात आर" लाइनों को कैश कर रहा था और जब प्रोगार्ड चलाने की कोशिश कर रहा था तो उसके पास कैश किए गए मान नहीं थे और फिर दुर्घटनाग्रस्त हो गए। मुझे देखने के लिए कोई त्रुटि आउटपुट क्यों नहीं था, मुझे नहीं पता।

0
**in new Gradle system** 

BuildType.runProguard     -> minifyEnabled 
BuildType.zipAlign     -> zipAlignEnabled 
BuildType.jniDebugBuild    -> jniDebuggable 
BuildType.renderscriptDebug   -> renderscriptDebuggable 
ProductFlavor.renderscriptSupportMode -> renderscriptSupportModeEnabled 
ProductFlavor.renderscriptNdkMode  -> renderscriptNdkModeEnabled 

या जाएँ http://tools.android.com/tech-docs/new-build-system

4

पर बस अपने build.gradle

buildTypes {   
    release { 
    minifyEnabled true 
    proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt' 
    } 
} 

विवरण Reference अद्यतन करें। मुझे आशा है कि यह होगा आप

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