Hi,
I've just upgraded to Gradle 1.12 and Android gradle plugin v1.10. Just out
of curiosity, I also switched to new android manifest merger by specifying:
android{
useOldManifestMerger false
}
After switch, I encountered several problems. All but one were very clear
for me and I fixed them in a couple of minutes - duplicated permissions,
missing package names etc. Btw, I love the ${packageName} expression to be
used in intent filters etc.
The last problem I have is with merging android:minSdkVersion attribute
between my app buildTypes/flavors/dependencies.
My project structure is just a standard:
- root
-- app (app is build to APK and has dependency to app compat library)
My app module has several build types and flavours. One of the build type
and flavour configuration is Mo (flavour) Debug (buildType). In both debug/ and
mo/ folders I have a manifest files which, in debug/ adds some additional
activities to main manifest (DeveloperOptionsActivity etc) and in mo/ adds
some additional permissions for GCM for different environment.
In build.gradle of my app module I have:
defaultConfig {
minSdkVersion 9
targetSdkVersion 19
[...]
}
buildTypes {
debug {
debuggable true
packageNameSuffix ".debug"
runProguard false
}
...
}
productFlavors {
mo {
}
...
}
Neither my main/ nor debug/ nor /mo AndroidManifest.xml specify <users-sdk
/> since when they do, lint says:
<http://f.cl.ly/items/0x3F1y1H0u38122J1I0C/Image%202014-05-01%20at%203.06.29%20pm.png>
So I removed it from all main/ and debug/ and mo/ AndroidManifest.xml.
Once I did it, I see:
*app:processMoDebugManifest*
/Users/mateuszgrzechocinski/[...]/app/src/debug/AndroidManifest.xml:0:0
Error:
uses-sdk:minSdkVersion 1 cannot be smaller than version 7 declared in
library com.android.support:appcompat-v7:19.0.1
:app:processMoDebugManifest FAILED
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':app:processMoDebugManifest'.
> Manifest merger failed : uses-sdk:minSdkVersion 1 cannot be smaller than
version 7 declared in library com.android.support:appcompat-v7:19.0.1
The only way to get rid of this issue it to put <uses-sdk
androidMinSdkVersion="9" /> in my debug/AndroidManifest.xml. That's not
what I want, since I'd like one, and only one place for minSdkVersion to be
set for my whole application and it's android{ minSdkVersion 9 } in my
build.gradle. Lint thinks the same, I guess.
What's more interesting, putting <uses-sdk androidMinSdkVersion="9" /> in
my main/ AndroidManifest.xml file doesn't change anything. Seems like every
AndroidManifest.xml variant have to have it's owns <uses-sdk />, or am I
missing something?
Thanks in advance and thank you Xavier and your team for a tremendous work!
Matthew
--
You received this message because you are subscribed to the Google Groups
"adt-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.