Could not resolve library project after upgrade to Android 3.0 beta 2 -
i trying upgrade latest beta2 , encounter following issues app , lib modules.
in app build.gradle have 2 flavors
flavordimensions "default" productflavors { stage { applicationid "com.mycompany.hello.stage" resvalue "string", "app_name", "stage" } production { applicationid "com.mycompany.hello.stage.production" resvalue "string", "app_name", "live" } } and specify app talk specific type of lib following:
stagecompile project(path: ':lib', configuration: 'debug') productioncompile project(path: ':lib', configuration: 'release') lib build.gradle file have build types , no flavor block
publishnondefault true buildtypes { debug { versionnamesuffix ".debug" } release { versionnamesuffix ".release" minifyenabled true } } above code best knowledge app depends on build variant , talk particular build variants of lib. works until upgraded 3.0.
here gradle error message...i not sure if caused flavordimensions mismatches in 2 gradle files.
error:could not determine dependencies of task ':app:compilestagedebugaidl'. > not resolve task dependencies configuration ':app:stagedebugcompileclasspath'. > not resolve project :lib. required project :app > project :app declares dependency configuration 'stagecompile' configuration 'debug' not declared in descriptor project :lib.
so spent couple of hours , migrated project match migrating guide provided android studio.
i end doing following changes achieve want:
app variant productionrelease should invoke lib release
app variant stagedebug should invoke lib debug
app build.gradle file
flavordimensions "default" //add line flavordimensions productflavors { stage { ... } production { ... } } implementation project(':lib') in lib build.gradle remain same
publishnondefault true buildtypes { debug { versionnamesuffix ".debug" } release { versionnamesuffix ".release" minifyenabled true } } the catch have here ignore variants don't want achieve productionrelease(app)+release(lib) , stagedebug(app)+debug(lib) combinations.
// in way have productionrelease , stagedebug variant left in panel me.
in app build.gradle
variantfilter { variant -> def names = variant.flavors*.name if (names.contains("stage") && variant.buildtype.name == "release") { variant.ignore = true } if (names.contains("production") && variant.buildtype.name == "debug") { variant.ignore = true } } when switch build variants of app, switch lib corresponding build type.
i still no sure if best practice. if guys find better way it. please let me know.
Comments
Post a Comment