2015-04-02 19 views
0

我有,我會與SRC /調試/ Java版本,當我在調試模式下喜歡覆蓋的變量:如何覆蓋Android調試VS版本與主變量?

public static final boolean DEBUG = true; 

我試圖把變量的src /調試/ JAVA是真實的,和src/main/java爲false,但不會被覆蓋。有沒有辦法做到這一點或解決方法?

我想在我的build.gradle以下,但無論釋放或調試模式,它

debug { 
     buildConfigField "boolean", "REPORT_CRASHES", "false" 
    } 

    release { 
     minifyEnabled false 
     proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
     buildConfigField "boolean", "REPORT_CRASHES", "true" 
    } 

而且我的Java:

Log.d(TAG, "BuildConfig.REPORT_CRASHES: " + BuildConfig.REPORT_CRASHES); 
    // Both debug and release versions display 'true' 
+0

您描述它的方式,它應該工作。也許張貼您的文件夾結構的屏幕截圖。 – FWeigl 2015-04-02 18:40:26

回答

0

你應該使用你的com.main.module.BuildConfig VS你的com.dependency.module.BuildConfig ...這將解決所有問題。

1

按照例如在this blog,您可以使用buildConfigField在您的Gradle文件中添加額外變量到您的BuildConfig類中:

defaultConfig { 
    .... 
    buildConfigField "boolean", "DEBUG_FLAG", "false" 
} 

buildTypes { 
    debug { 
     buildConfigField "boolean", "DEBUG_FLAG", "true" 
    } 
    ... 
} 

然後在代碼中使用BuildConfig.DEBUG_FLAG來引用它。請注意,BuildConfig已包含一個DEBUG標誌,其中除release之外的所有標誌均爲true

+0

偉大的建議。看到我上面的編輯。我不確定爲什麼,但是一切都返回true – Kamilski81 2015-04-02 19:40:27

+0

你是否通過構建變體窗口在你的調試/發佈版本之間切換?有一點需要注意的是'BuildConfig.DEBUG'已經完成了你在更新中寫的內容 – ianhanniballake 2015-04-02 19:57:00

+0

I我遇到了變體的這個錯誤,這可能是我爲什麼無法解決這個問題的原因:http://stackoverflow.com/questions/29434962/how-do-i-change-the-build-variant-for-一個庫的依賴模塊 – Kamilski81 2015-04-03 15:20:35