Android Studio 3.0 Canary 4 构建错误
Build error with Android Studio 3.0 Canary 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.
更新:
更新后检查Canary版本即可。为此,请参阅工具栏正上方的 Android Studio 版本(文件..编辑..视图..行),其中末尾的名称如 "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'
}
我遇到了同样的问题,似乎是 Canary 4 中的一个错误。
目前,作为解决方法,我降级到 Android Studio 3.0.0 Canary 3 (This is an archive of all Android Studio releases) 并将 Android Gradle 插件降级到 3.0.0-alpha3
:
dependencies {
classpath 'com.android.tools.build:gradle:3.0.0-alpha3'
...
}
以下过程可作为此问题的解决方法:
在gradle命令行
上执行以下构建命令
1) gradle干净
2) gradlew:appModule:assembleDebug
- here appModule is the name of the app module for building the installable apk
- the build is successful and the debug apk generated in the output folder can be installed successfully
3) gradlew :instantAppModule:assembleDebug
- here instantAppModule is the name of the instant app module
- the build is successful and the instant app apks can be installed and launched via deep link
一旦上述命令行构建成功,通过 Android Studio Canary 4 构建也会停止抛出构建错误。
在您的 gradle.properties 文件中,添加以下行
android.enableAapt2=false
最新版本的 AS3.0 默认切换为使用 AAPT2。
您可以使用上述代码行在您的 gradle.propertіes 文件中禁用 AAPT2,并继续在 AS3 canary 4 上开发。
当我为库模块打开 data-binding
时,我遇到了类似的错误。当我关闭它并将所有需要 data-binding
的 类 移动到 app
模块时,它起作用了。所以我猜有一个问题是 DataBinding 不再适用于 Library 模块(Gradle 2.x 没问题)。
dataBinding {
enabled = false
}
我正在使用 com.android.tools.build:gradle:3.0.0-alpha5
和 Android 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>
当我有一个没有任何布局的 "base" 功能模块(我所有的实际布局都在单独的功能中)时,这对我来说是个问题
在基本功能中添加虚拟布局 XML 文件(例如 base/src/res/layout/dummy.xml
)意味着已创建缺少的目录并编译了应用程序。
(这是使用 com.android.tools.build:gradle:3.0.0-alpha6
)
我目前正在开发一个即时应用程序,为此我已将我的整体应用程序重组为功能模块。 一切正常,运行 直到 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.
更新:
更新后检查Canary版本即可。为此,请参阅工具栏正上方的 Android Studio 版本(文件..编辑..视图..行),其中末尾的名称如 "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'
}
我遇到了同样的问题,似乎是 Canary 4 中的一个错误。
目前,作为解决方法,我降级到 Android Studio 3.0.0 Canary 3 (This is an archive of all Android Studio releases) 并将 Android Gradle 插件降级到 3.0.0-alpha3
:
dependencies {
classpath 'com.android.tools.build:gradle:3.0.0-alpha3'
...
}
以下过程可作为此问题的解决方法:
在gradle命令行
上执行以下构建命令1) gradle干净
2) gradlew:appModule:assembleDebug
- here appModule is the name of the app module for building the installable apk
- the build is successful and the debug apk generated in the output folder can be installed successfully
3) gradlew :instantAppModule:assembleDebug
- here instantAppModule is the name of the instant app module
- the build is successful and the instant app apks can be installed and launched via deep link
一旦上述命令行构建成功,通过 Android Studio Canary 4 构建也会停止抛出构建错误。
在您的 gradle.properties 文件中,添加以下行
android.enableAapt2=false
最新版本的 AS3.0 默认切换为使用 AAPT2。 您可以使用上述代码行在您的 gradle.propertіes 文件中禁用 AAPT2,并继续在 AS3 canary 4 上开发。
当我为库模块打开 data-binding
时,我遇到了类似的错误。当我关闭它并将所有需要 data-binding
的 类 移动到 app
模块时,它起作用了。所以我猜有一个问题是 DataBinding 不再适用于 Library 模块(Gradle 2.x 没问题)。
dataBinding {
enabled = false
}
我正在使用 com.android.tools.build:gradle:3.0.0-alpha5
和 Android 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>
当我有一个没有任何布局的 "base" 功能模块(我所有的实际布局都在单独的功能中)时,这对我来说是个问题
在基本功能中添加虚拟布局 XML 文件(例如 base/src/res/layout/dummy.xml
)意味着已创建缺少的目录并编译了应用程序。
(这是使用 com.android.tools.build:gradle:3.0.0-alpha6
)