4

我目前正在开发一个即时应用程序,为此我已将我的单体应用程序重组为功能模块。在 Android Studio Canary 3 之前,一切都已启动并运行,但在更新到Android Studio Canary 4后,我的项目无法构建并出现以下错误:

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.
4

6 回答 6

8

以下过程可作为此问题的解决方法:

在 gradle 命令行上执行以下构建命令

1) 毕业清洁

2) gradlew:appModule:assembleDebug

  • 这里 appModule 是用于构建可安装 apk 的应用模块的名称
  • 构建成功,输出文件夹中生成的调试apk可以安装成功

3) gradlew :instantAppModule:assembleDebug

  • 这里的 instantAppModule 是即时应用模块的名称
  • 构建成功,可以通过深层链接安装和启动即时应用程序 apk

一旦上述命令行构建成功,通过 Android Studio Canary 4 构建也将停止抛出构建错误。

于 2017-06-27T05:57:28.243 回答
6

当我打开data-binding库模块时,我遇到了类似的错误。当我关闭它并将所有需要模块的类移动data-bindingapp,它就可以工作了。所以我猜有一个问题是 DataBinding 不再适用于库模块(Gradle 2.x 很好)。

dataBinding {
    enabled = false 
}

我正在使用com.android.tools.build:gradle:3.0.0-alpha5Android Studio 3.0 Preview Canary5

更新

虽然最初的答案有效,但我真的想打开data-binding我的库模块,在那里我使用绑定技术实现了一些基类。我将它们移回library模块并将kotlin版本升级到最新版本1.1.3-2。突然间它也起作用了。我不确定哪个更好,但两种方式都适合我。

更新 2

我此时正在使用com.android.tools.build:gradle:3.0.0-alpha9和 kotlin 1.1.3-2,突然问题再次出现。现在我认为问题不在于 Kotlin。我的库模块转了 dataBiding { enabled=true},但它没有任何布局文件。我试图创建一个由<layout>标签包裹的假布局文件,它可以工作

 <?xml version="1.0" encoding="utf-8"?>
<layout>
    <View xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical"/>
</layout>
于 2017-07-10T17:06:18.490 回答
3

在您的 gradle.properties 文件中,添加以下行

android.enableAapt2=false

AS3.0 的最新版本默认切换为使用 AAPT2。您可以使用上述代码行在您的 gradle.properіes 文件中禁用 AAPT2,并继续在 AS3 canary 4 上进行开发。

于 2017-06-27T09:37:51.380 回答
3

当我有一个没有任何布局的“基本”功能模块时,这对我来说是个问题(我所有的实际布局都在单独的功能中)

在基本功能中添加一个虚拟布局 XML 文件(例如 as base/src/res/layout/dummy.xml)意味着创建了缺少的目录并编译了应用程序。

(这是使用com.android.tools.build:gradle:3.0.0-alpha6

于 2017-07-19T13:33:44.093 回答
2

我遇到了同样的问题,似乎是 Canary 4 中的错误。

目前,作为一种解决方法,我将 Android Studio 3.0.0 Canary 3 降级(这是所有 Android Studio 版本的存档),并将 Android Gradle 插件降级为3.0.0-alpha3

dependencies {
    classpath 'com.android.tools.build:gradle:3.0.0-alpha3'
    ...
}
于 2017-06-26T14:03:42.940 回答
1

更新:

只需在更新后检查 Canary 版本即可。为此,请参阅工具栏上方的 Android Studio 版本(File..Edit..View..line),其中末尾的名称如“Canary X”。-> X 是数字,如 3、4、5 等。

例如,假设更新版本(X)为 5。尝试将build.gradle(applicationName)中的类路径更改为 3.0.0-alpha5 并再次同步(/尝试):

dependencies {
    classpath 'com.android.tools.build:gradle:3.0.0-alpha5'
}

表示更新版本(X):-

dependencies {
    classpath 'com.android.tools.build:gradle:3.0.0-alphaX'
}
于 2017-06-26T06:27:37.290 回答