Every time i release my app i change all my url strings and some keys from testing to production. The way I do it is just comment out the testing strings before i release. Is there a better way to handle strings based on the build type ?
问题:
回答1:
Assuming you use Android Studio, by default the system creates a basic release
and debug
flavor. So if you add a debug
and release
folder in the app/src
folder of your project you can declare separate values there.
So your structure should be like this:
project
-app
-src
-debug
-java
...
-res
-values
-strings.xml
-release
-java
...
-res
-values
-strings.xml
-main
-java
...
-res
-values
-strings.xml
I should also add that if you have a string which isn't defined in either of the debug
or the release
folder that it will fallback to your main
folder.
回答2:
Just make two flavors in build.gradle. Then two directories, again as given in the link (developer.android.com/tools/building/configuring-gradle.html ). Since you need only strings to be altered, just copy your strings.xml files into the new directories (i.e. dev and production) Delete your original strings.xml
And thats it. :)
No need to move your java files or other layout files.
In short, leave everything in your 'main' directory that should be consistent across all build flavors. Override the values dependent upon build flavor into their respective directory.