2016-09-20 17 views
11

Sau khi cập nhật Android Studio lên phiên bản 2.2, tôi cũng có bản cập nhật cho Plugin Gradle (nó là 2.1.3):Android Studio 2.2: APK được căn chỉnh (zipAlign) không được tạo bằng Plugin Gradle mới 2.2.0

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

Tôi thấy tệp APK biến thể chưa được căn chỉnh nhưng các biến thể khác không được tạo nữa. Tôi đã cố bật tính năng căn chỉnh mã zip:

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

nhưng không có gì thay đổi. Bất kỳ ý tưởng?

tôi "giải quyết" quay lưng lại để

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

ở cấp dự án build.gradle.

EDIT (20.160.922):

Nhờ Fayder Florez cho câu trả lời của mình. Đúng vậy, môi trường xây dựng hiện chỉ tạo ra một gói ứng dụng (https://code.google.com/p/android/issues/detail?id=212591).

Nhưng sử dụng bởi mã (mà đổi tên de tên cho file xuất sử dụng VERSION CODEVERSION 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) 
    } 
} 

tôi nhận được "_unaligned" gắn vào tên tập tin đầu ra, vì vậy tôi giả sử rằng output.zipAlignfalse.

Vì vậy, tệp đầu ra có thực sự được căn chỉnh không?

EDIT (20161013)

Nhờ ending0421 và đó là gợi ý để kiểm tra các gói ứng dụng bằng cách sử dụng công cụ xây dựng:

căn chỉnh nén -c -v 4 path/fileName

Bây giờ Tôi bây giờ rằng APK được tạo chính xác và các thông số lệnh zipalign:

xác nhận thành công

+0

Tôi xác minh rằng output.zipalign luôn là null và do đó điều kiện if được thỏa mãn và tên gói ứng dụng được tạo chứa hậu tố "_unaligned.apk" (theo mã trong OP). Tuy nhiên tập tin kết quả là zipaligned. – drulabs

Trả lời

7

Theo chuyên mục này: https://code.google.com/p/android/issues/detail?id=212591

"Xin chào, chúng tôi không tạo ra gói ứng dụng được unaligned nữa. Là một phần của những cải tiến để tăng tốc độ, chúng tôi tạo ra gói ứng dụng đã được căn chỉnh. Vì vậy, thay vì hai, bạn chỉ có được cái cuối cùng. .

@ yair.kikielka Cảm ơn"

4

Trả lời EDIT (20.160.922):

Vậy là file đầu ra thực sự thẳng hàng

Có?!Bạn có thể xác minh bằng

căn chỉnh nén -c -v 4 path/fileName

Khi bạn chạy lệnh này trên các tập tin apk đó được tạo ra bởi phiên bản gradle> = 2.2, bạn sẽ nhận được "Xác nhận thành công". Điều đó có nghĩa là đã được căn chỉnh.

Các vấn đề liên quan