我目前正在开发一个即时应用程序,我已将我的单片应用程序重组为功能模块。 一切都已启动并运行到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.
答案 0 :(得分:8)
以下过程可用作此问题的解决方法:
在gradle命令行上执行以下构建命令
1)gradlew clean
2)gradlew:appModule:assembleDebug
- 此处appModule是用于构建可安装的apk
的应用程序模块的名称- 构建成功,输出文件夹中生成的调试apk可以成功安装
3)gradlew:instantAppModule:assembleDebug
- 此处instantAppModule是即时应用模块的名称
- 构建成功,即时应用apks可以通过深层链接安装和启动
上述命令行构建成功后,通过Android Studio Canary 4构建也会停止抛出构建错误。
答案 1 :(得分:5)
当我为库模块打开document.getElementById('previous-song').addEventListener('click', function() {
$.ajax({
type: 'POST',
url: 'https://api.spotify.com/v1/me/player/previous',
headers: {
'Authorization': "Bearer " + access_token
},
}).done(function(data) {
setTimeout(
$.ajax({
url: 'https://api.spotify.com/v1/me/player/currently-playing',
headers: {
'Authorization': 'Bearer ' + access_token
},
}).done(function(response) {
currentPlayingPlaceholder.innerHTML = currentPlayingTemplate(response);
}), 3000); //wait 3 seconds before updating the currently playing
});
}, false);
时出现类似错误。当我关闭它并将所有需要data-binding
的类移动到data-binding
模块时,它可以工作。所以我想有一个问题,DataBinding不再适用于Library模块(Gradle 2.x很好用)。
app
我正在使用dataBinding {
enabled = false
}
和Android Studio 3.0 Preview Canary5
虽然最初的答案有效,但我真的想在我的库模块上打开com.android.tools.build:gradle:3.0.0-alpha5
,在那里我使用绑定技术实现一些基类。我将它们移回data-binding
模块并将library
版本升级到最新版本kotlin
。突然它也有效。我不确定哪一个更好,但两种方式都适合我。
此时我正在使用1.1.3-2
和kotlin com.android.tools.build:gradle:3.0.0-alpha9
,突然问题再次出现。
现在我认为这个问题不是来自科特林。我的库模块已转为1.1.3-2
,但它没有任何布局文件。我试图创建一个由dataBiding { enabled=true}
标签包装的假布局文件,它可以正常工作
<layout>
答案 2 :(得分:3)
在gradle.properties文件中,添加以下行
android.enableAapt2=false
最新版本的AS3.0默认使用AAPT2。 您可以使用上面提到的代码行在gradle.propertіes中禁用AAPT2,并继续在AS3 canary 4上进行开发。
答案 3 :(得分:3)
当我有一个&#34; base&#34;这对我来说是一个问题。没有任何布局的功能模块(我所有的实际布局都在不同的功能中)
在基本功能中添加虚拟布局XML文件(例如base/src/res/layout/dummy.xml
)意味着创建了缺失目录并编译了应用程序。
(这是使用com.android.tools.build:gradle:3.0.0-alpha6
)
答案 4 :(得分:1)
<强>更新强>
更新后只需检查Canary版本。为此,请参阅工具栏上方的Android Studio版本(File..Edit..View..line),其中名称在末尾,如“Canary X”.-&gt; X是3,4,5等数字。
例如假设更新版本(X)为5。 尝试将 build.gradle(applicationName)中的类路径更改为3.0.0-alpha5并再次同步(/ Try):
dependencies {
classpath 'com.android.tools.build:gradle:3.0.0-alpha5'
}
表示更新版本(X): -
dependencies {
classpath 'com.android.tools.build:gradle:3.0.0-alphaX'
}
答案 5 :(得分:1)
我有同样的问题,好像是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'
...
}