Dean Hiller
Dean Hiller

Reputation: 20182

composite builds broken on android or did I do this wrong?

In 10 minutes, I created an empty android library and an empty android application in this git repository

https://github.com/deanhiller/compositeAndroid

As seen in my last commit, I quickly convert the android application do depend on the library via gradle's awesome composite build feature (We use this feature a TON in our monorepo so loading a project loads all the libraries source code that it uses as well). Our library is shared amongst a few projects.

I cd into compositeAndroid/MyApplication and run ./gradlew build and it fails with

* What went wrong:
Could not determine the dependencies of task ':app:mergeReleaseAssets'.
> Could not resolve all task dependencies for configuration ':app:releaseRuntimeClasspath'.
> Could not resolve com.tray.android:MyLib.
 Required by:
     project :app
  > No matching configuration of project :MyLib was found. The consumer was configured to find a runtime of a component, preferably optimized for Android, as well as attribute 'com.android.build.api.attributes.BuildTypeAttr' with value 'release', attribute 'com.android.build.api.attributes.AgpVersionAttr' with value '7.1.0' but:
      - None of the consumable configurations have attributes.

I am not sure how to work around this. I have a work around to publish/consume but would much prefer composite builds as it brings the source of libraries into intellij cleanly.

Why is composite builds not working? Is there something special I have to do for android projects? The above repo I setup in 10 minutes with those 2 projects(brand new).

You can always clone and play with it yourself as well. (We will actually be releasing our monorepo open-source template however it is not working to well with android just yet).

Upvotes: 4

Views: 487

Answers (2)

Cyber Avater
Cyber Avater

Reputation: 2147

For anyone stumbling upon here composite build is indeed broken for Android. I've spent a lot of time trying to debug with no luck but switching back to multi-project build from composite build fixed this (and another issue here: unable to find project exploded aar)

Upvotes: 0

ymz
ymz

Reputation: 6916

After looking into the code under MyLib folder in the repository you shared here - it seems you've opened a regular project and intend to use it as a library

Can you please follow the steps required here and test it under a new module?

Hint: your build should result with an aar file

Upvotes: 0

Related Questions