2016-02-16 16 views
7

Tôi đang nghiên cứu tính năng "chạy ngay lập tức" trong Android Studio. Nhưng có vẻ như nó không hoạt động với proguard. Có ai biết tại sao và làm thế nào để họ làm việc cùng nhau?Chạy tức thì không hoạt động với proguard

môi trường của tôi: Android Studio 2.0 Beta 4

cấp cao nhất của tôi build.gradle

buildscript { 
    repositories { 
     mavenCentral() 
     jcenter() 
    } 
    dependencies { 
     classpath 'com.android.tools.build:gradle:2.0.0-beta4' 
    } 
} 

allprojects { 
    repositories { 
     maven { url "http://dl.bintray.com/populov/maven" } 
     mavenCentral() 
     jcenter() 
    } 
} 

Các build.gradle cho module:

apply plugin: 'com.android.application' 

android { 
    compileSdkVersion 23 
    buildToolsVersion "23.0.2" 

    defaultConfig { 
     minSdkVersion 17 
     targetSdkVersion 23 
    } 
    buildTypes { 
     debug { 
      minifyEnabled false 
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
     } 
    } 
} 

dependencies { 
    compile 'com.android.support:appcompat-v7:23.1.1' 
} 

tôi có thể thấy một số sau "instatn chạy "nhiệm vụ trong bảng điều khiển gradle với các thiết lập ở trên. Và có một tiếng sét màu vàng xuất hiện với nút chạy.

:TestIR:transformClassesWithInstantRunVerifierForDebug 
:TestIR:transformClassesWithInstantRunForDebug 
:TestIR:transformClasses_enhancedWithInstant+reloadDexForDebug 
:TestIR:generateDebugInstantRunAppInfo 
:TestIR:transformClassesWithInstantRunSlicerForDebug 
Dexing C:\git\android\TestIR\build\intermediates\transforms\instantRunSlicer\debug\folders\1\5\slice_1 took 328 
Dexing C:\git\android\TestIR\build\intermediates\transforms\instantRunSlicer\debug\folders\1\5\slice_0 took 340 
Dexing C:\git\android\TestIR\build\intermediates\transforms\instantRunSlicer\debug\folders\1\5\slice_2 took 331 
Dexing C:\git\android\TestIR\build\intermediates\transforms\instantRunSlicer\debug\folders\1\5\slice_5 took 321 
Dexing C:\git\android\TestIR\build\intermediates\transforms\instantRunSlicer\debug\folders\1\5\slice_3 took 456 

Nhưng nếu tôi đặt "minifyEnabled" true, không có "chạy ngay lập tức" nhiệm vụ trong Gradle an ủi bất kỳ, hoặc nút sét vàng hơn.

Có cách nào để chúng hoạt động cùng nhau không?

+0

Tại sao proguard lại chạy với chức năng chạy? Nó chỉ nên chạy cho một ứng dụng đã ký, đúng không? –

+0

Một điều mà tôi đang nghĩ đến là tạo một kiểu xây dựng nhà phát triển có 'minifyEnabled false' và chỉ thử nghiệm trên các thiết bị mới hơn khi phát triển và sau đó chuyển sang gỡ lỗi – Mike

+1

@TaylorCourtney khi minsdk của bạn đủ thấp, bạn cần chạy proguard đơn giản để đáp ứng giới hạn dex. Bạn không cần phải sử dụng nó cho obfuscation trừ khi nó được sản xuất nhưng bạn cần phải cắt thêm phương pháp để kiểm tra trên các thiết bị cũ hơn – Mike

Trả lời

2

Theo this chính thức Trang dành cho nhà phát triển Android, Android Studio tắt ProGuard khi sử dụng tính năng Chạy tức thì. enter image description here

0

1.Go để 'chạy/debug cấu hình' loại bỏ android cấu hình ứng dụng của bạn

2. tái một cấu hình ứng dụng android

3.Go để linh tinh tab, bỏ chọn 'lực dừng chạy ứng dụng trước khi khởi chạy hoạt động '

+0

Với 'minifyEnabled true' bạn thậm chí không thấy nút chạy với tia chớp để chạy ngay lập tức. Cách duy nhất tôi có thể có nó thực sự hiển thị là tắt proguard, trừ khi có nhiều bước để thiếu – Mike

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