Hi, Joe
I've looked into your changes and did some quick testing. IMO they looks good
apart some minor issues:
- after adding a plugin and opening resultant project in Android studio I was
unable to build the project w/ debug configuration - only release seems to
work. The error I'm getting is
Error:Module 'CordovaLib' has variant 'release' selected, but the module
''android'' depends on variant 'debug'
From CLI everything seems to work fine.
- I'm not very experienced in Gradle things, but looks like adding excludes to
every plugin's subproject [1] - is not really required. At least I was able to
build the generated project without these excludes. Moreover, the Gradle build
output with and without these excludes is similar - no additional compilation
of CordovaLib is performed
- I had to manually update "buildToolsVersion" property in InappBrowser's
build.gradle - perhaps we would need for a logic to update that property
according to installed build tools version at build time?
-
[1]
https://github.com/apache/cordova-android/compare/master...infil00p:framework_fixes#diff-417ebeefa9eab114cf248463f6886bbaR103
[2]
https://github.com/apache/cordova-android/compare/master...infil00p:framework_fixes
-
Best regards, Vladimir
-----Original Message-----
From: Joe Bowser [mailto:[email protected]]
Sent: Tuesday, June 21, 2016 12:38 AM
To: dev <[email protected]>
Subject: Re: Proof of Concept: Plugins as Android Modules
Bump! It'd be good to get some feedback on this sooner rather than later.
On Thu, Jun 16, 2016 at 3:57 PM, julio cesar sanchez <[email protected]
> wrote:
> Hi.
>
> I sadly can't contribute to this because I don't think I have enough
> Android knowledge, but just wanted to answer on this topic as I feel
> that is very important and I think this one and the previous ones you
> sent related to this didn't get enough attention.
> So, even if I can't personally help, maybe answering on the topic can
> get some attention, or at least you can know that somebody read it and
> support it.
>
>
> 2016-06-14 22:58 GMT+02:00 Joe Bowser <[email protected]>:
>
> > Hey
> >
> > Here's a proof of concept for Android Modules. It works for cordova
> > core plugins, but it's kinda brittle because I need to figure out
> > how to
> handle
> > dependencies and excluding duplicate compilation in our tools.
> >
> > https://github.com/infil00p/cordova-android/tree/framework_fixes
> > https://github.com/infil00p/cordova-plugin-inappbrowser/tree/aar_poc
> >
> > Surprisingly, the changes made are very minor to get this to work,
> > and there's a lot of serious advantages we give. That said, our
> > Gradle
> scripts
> > are incredibly brittle, and we don't have the luxury of changing any
> > execution order to try to get around excluding dependencies.
> >
> > I think it would be good if we could add in plugin.xml a way to
> > exclude compilation of dependencies that are already included.
> > Right now if you include a plugin that depends on the CordovaLib
> > module in the project,
> our
> > plugin will install things twice.
> >
> > Does anyone have any thoughts about this? I really want this to be
> > a lot less brittle before introducing this method of installing plugins.
> >
> > Joe
> >
>