I am currently in the process of developing an Instant app, for which I have restructured my monolithic app into feature modules. Everything was up and running till Android Studio canary 3, but after an update to Android Studio Canary 4 my project fails to build with the following error:
A problem was found with the configuration of task ':minimoBase:dataBindingExportBuildInfoDebugAndroidTest'.
> Directory '/Users/nayak.vishal/projectData/minimo_instant_app_project/putica-client-android-
native/minimoBase/build/intermediates/data-binding-info/androidTest/debug'
specified for property 'xmlOutFolder' does not exist.
This was an issue for me when I had a "base" feature module without any layouts (all my actual layouts are in separate features)
Adding a dummy layout XML file in the base feature (e.g. as
base/src/res/layout/dummy.xml
) meant the missing directory was created and the app compiled.(this is using
com.android.tools.build:gradle:3.0.0-alpha6
)I've had the same problem, seems like a bug in Canary 4.
For now, as a workaround, I downgraded to Android Studio 3.0.0 Canary 3 (This is an archive of all Android Studio releases) and also downgraded the Android Gradle plugin to
3.0.0-alpha3
:I got similar error when I turn on
data-binding
for library module. When I turn it off and move all classes that requiredata-binding
toapp
module, it works. So I guess there is a problem that DataBinding doesn't work on Library module any more ( Gradle 2.x fine with this).I am using
com.android.tools.build:gradle:3.0.0-alpha5
and Android Studio 3.0 Preview Canary5UPDATE
Although the original answer worked, I really want to turn on
data-binding
on my library module, where I implement some base classes using binding technique. I move them back tolibrary
module and upgradekotlin
version to the latest one1.1.3-2
. Suddenly it works also. I am not sure which one is the better but both ways work for me.UPDATE 2
I am using
com.android.tools.build:gradle:3.0.0-alpha9
and kotlin1.1.3-2
at this time and suddenly the problem re-appear. Now I think the problem doesn't come from Kotlin. My library module turneddataBiding { enabled=true}
, but it doesn't have any layout file. I tried to create a fake layout file wrapped by<layout>
tag and it worksUpdated:
Just check the Canary version after update. For that see Android Studio version just above the toolbar (File..Edit..View..line) where name at end like "Canary X".-> X is number like 3,4,5,etc.
For example suppose updated version(X) is 5. Try to change that classpath in build.gradle(applicationName) to 3.0.0-alpha5 and sync(/Try) again:
Means that updated version(X):-
The following procedure worked as a workaround for this issue:
Execute the following build commands on the gradle command line
1) gradlew clean
2) gradlew :appModule:assembleDebug
3) gradlew :instantAppModule:assembleDebug
Once the above command line builds are successful, building via Android Studio Canary 4 also stops throwing the build error.
In your gradle.properties file , add the following line
Recent versions of AS3.0 switched to using AAPT2 by default. You can disable AAPT2 in your gradle.propertіes fіle with above mentioned line of code, and continue developing on AS3 canary 4.