2015-02-28 17 views
5

Tôi đang phát triển trong nhật thực bằng cách sử dụng ADT cho android.
Trong ứng dụng của tôi, tôi có một số hằng số giúp tôi gỡ lỗi ứng dụng của mình một cách dễ dàng.
Ví dụ: Tôi có:
public static final boolean DEBUG_TOAST_LOGS = true;
giúp tôi nướng bánh mì trên một số bản ghi trên màn hình.
Mỗi khi tôi có ý định xây dựng một bản phát hành, tôi phải đi qua các hằng số của mình và đặt giá trị của chúng thành những gì phù hợp cho ấn bản phát hành, điều này thật đau đớn.
Bây giờ những gì tôi muốn là một cách để xây dựng ứng dụng của tôi, sử dụng hai cấu hình: một cho chế độ gỡ lỗi và chế độ phát hành chế độ phát hành. Chế độ phát hành nên đặt hằng số của tôi thành các giá trị thích hợp. Làm thế nào tôi không thể làm điều đó? Đề nghị của bạn là gì? Cách tốt nhất để hoàn thành nhu cầu của tôi là gì?

Mọi trợ giúp sẽ được đánh giá cao.Thay đổi giá trị không đổi khi xây dựng một ấn bản phát hành

Trả lời

9

Tôi không chắc chắn nếu bạn đang sử dụng Gradle làm hệ thống xây dựng của mình. Nếu bạn làm như vậy, bạn có thể đặt các tài nguyên cụ thể kiểu dựng, ví dụ: giá trị boolean debug sẽ là true cho loại xây dựng gỡ lỗi và sai cho loại bản dựng phát hành.

build.gradle

android { 

    defaultConfig { 
     ... 
     resValue "bool", "debug", "true" 
    } 

    buildTypes { 
     release { 
      ... 
      resValue "bool", "debug", "false" 
     } 
    } 

    ... 
} 

Application.java

public class Application extends android.app.Application { 
    @Override 
    public void onCreate() { 
     super.onCreate(); 
     if (getResources().getBoolean(R.bool.debug)) { 
      ... // debug logic here 
     } 
     ... 
    } 
} 
4

@ giải pháp hidro là tốt, nhưng đòi hỏi một không cần thiết getResources()... cuộc gọi mỗi khi bạn muốn truy cập các giá trị.

Có một khả năng:

build.gradle

android { 
    buildTypes { 
    debug { 
     buildConfigField "boolean", "DEBUG_TOAST_LOGS", "true" 
    } 

    release { 
     buildConfigField "boolean", "DEBUG_TOAST_LOGS", "false" 
    } 
} 

}

Sau đó, trong mã của bạn, bạn có thể viết:

if (BuildConfig.DEBUG_TOAST_LOGS) { 
    // ... enjoy your toasts ... 
} 
Các vấn đề liên quan