2016-09-20 9 views
11

का उपयोग कर 2.2 संस्करण के लिए एंड्रॉयड स्टूडियो अद्यतन करने के बाद उत्पन्न नहीं मैं भी Gradle प्लगइन के लिए एक अद्यतन मिल गया है (यह 2.1.3 था):एंड्रॉयड स्टूडियो 2.2 अद्यतन: गठबंधन APK (zipalign) नई Gradle प्लगइन 2.2.0

... 
classpath 'com.android.tools.build:gradle:2.2.0' 
... 

मैं unaligned संस्करण एपीके फ़ाइल देखता हूं लेकिन अन्य रूपों को अब और उत्पन्न नहीं किया जाता है। मैंने ज़िप संरेखण को सक्षम करने का प्रयास किया:

buildTypes { 
     release { 
      minifyEnabled false 
      zipAlignEnabled true 
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
      signingConfig signingConfigs.release 
     } 
     debug { 
      applicationIdSuffix '.debug' 
     } 
} 

लेकिन कुछ भी नहीं बदलेगा। कोई विचार?

मैं "हल" परियोजना स्तर build.gradle में

classpath 'com.android.tools.build:gradle:2.1.3' 

को वापस मोड़।

संपादित करें (20,160,922): अपने प्रतिक्रिया के लिए Fayder Florez करने के लिए

धन्यवाद। यह सही है, निर्माण पर्यावरण अब केवल एक एपीके (https://code.google.com/p/android/issues/detail?id=212591) उत्पन्न करता है।

लेकिन कोड (कि नाम बदलना डी आउटपुट फ़ाइल नाम VERSION CODE और VERSION NAME का प्रयोग करके) द्वारा उपयोग करते हुए:

android.applicationVariants.all { variant -> 
    variant.outputs.each { output -> 
     def padVersionCode = variant.versionCode.toString(); 
     padVersionCode = padVersionCode.padLeft(5, '0') 
     def newApkName = "${output.baseName}_${padVersionCode}-${variant.versionName}" 

     if (!output.zipAlign) 
      newApkName = newApkName + "_unaligned" 

     newApkName = newApkName + ".apk" 
     output.outputFile = new File(output.outputFile.parent, newApkName) 
    } 
} 

मैं "_unaligned" आउटपुट फ़ाइल नाम के साथ जोड़ दिया मिलता है, तो मुझे लगता है कि output.zipAlignfalse है।

तो आउटपुट फ़ाइल वास्तव में गठबंधन है?

संपादित करें (20161013)

धन्यवाद ending0421 के लिए और इसे बनाने के उपकरण का उपयोग कर apk जाँच करने के लिए सुझाव दिया गया है:

zipalign -c -v 4 पथ/fileName

अब अब मैं एपीके सही ढंग से जेनरेट किया गया है और zipalign कमांड syays:

सत्यापन सफल

+0

मैंने सत्यापित किया कि output.zipalign हमेशा शून्य है और इसलिए यदि स्थिति संतुष्ट हो जाती है और उत्पादित एपीके नाम में प्रत्यय "_unaligned.apk" (ओपी में कोड के अनुसार) शामिल है। हालांकि परिणामी फ़ाइल zipaligned है। – drulabs

उत्तर

7

इस मंच के अनुसार: https://code.google.com/p/android/issues/detail?id=212591

"हाय, हम असंरेखित apks किसी भी अधिक उत्पन्न नहीं है। चीजों की गति में सुधार के हिस्से के रूप में, हम पहले ही गठबंधन एपीके उत्पन्न करते हैं। तो, दो की बजाय, आप केवल अंतिम प्राप्त करते हैं। ।

@ yair.kikielka धन्यवाद "

4

उत्तर संपादित करें (20,160,922):

तो आउटपुट फ़ाइल है वास्तव में गठबंधन

हाँ?!आप

zipalign -c -v 4 पथ/fileName

का उपयोग करते समय आप जो Gradle संस्करण> = 2.2 द्वारा उत्पन्न APK फ़ाइलों पर इस आदेश चला सत्यापित कर सकते हैं, आप मिल जाएगा "सत्यापन सफल"। इसका मतलब है कि पहले ही गठबंधन है।

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