首页 > 解决方案 > 如何运行“Watchface for wearos”代码实验室?

问题描述

我是 Android 和 WearOS 以及 Gradle 的新手,我只想跟随这个 Codelab:

https://codelabs.developers.google.com/codelabs/watchface/index.html#0

所以我下载了Android Studio并导入了项目

https://github.com/googlecodelabs/watchface

但是在编译时我得到了错误

无法解决:com.google.android.support:wearable:2.0.0

我已经尝试更改 SDK 版本和其他内容,但没有帮助。我很确定这只是一些版本设置,但我不知道在哪里看。

有没有人可以完成这个 codelab 并让它与 AndroidStudio 的“实际”版本一起运行?

谢谢,托尔斯滕

标签: androidandroid-studio

解决方案


github 上的代码最后一次更新是在 2017 年 5 月,这很遗憾,因为它是对表盘的有用介绍。从那时起,许多事情发生了变化。从 2018 年 11 月开始,甚至在 github 上有一个带有 gradle 更新的拉取请求,但尚未合并。

除了 jcenter 之外,您的“无法解决”错误可能与 Google 现在在他们自己的 Maven 存储库中提供一些包有关。

这可以通过将 google() 添加到 Package build.gradle 文件中的存储库闭包中来解决:

buildscript {
    repositories {
        jcenter()
        google()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:4.0.2'
    }
}

allprojects {
    repositories {
        jcenter()
        google()
    }
}

gradle 插件的版本也已更改为 4.0.2 以上,因此也将文件 gradle-wrapper.properties 更新为:

distributionUrl=https\://services.gradle.org/distributions/gradle-6.1.1-all.zip

Gradle 现在应该构建,但它仍可能在构建窗口中记录一些警告或错误,您可以在 Android Studio 底部打开该窗口。

gradle 依赖关键字“provided”已替换为“compileOnly”,“compile”替换为“implementation”。Android Studio 中的 Shift+Ctrl+R 将使您能够轻松地在项目范围内进行替换。

它对于更新所有模块 build.gradle 文件中的 compileSdkVersion 和 targetSdkVersion(到 30)和 buildToolsVersion(到 30.0.2)也应该很有用。

软件包版本已过时,可穿戴版本目前为 2.8.1,play-services-wearable 为 17.0.0。Ctrl+Alt+Shift+S 将您带到“项目结构”中的“建议”,这可以帮助您在未来保持最新状态。

最后一个问题是 Android 支持库已经过时,取而代之的是 jetpack/androidx。请参阅旧参考

在这个项目中,只是module 5-palette的build.gradle有问题。您可以将 'com.android.support:palette-v7:23.3.0' 替换为 'androidx.palette:palette:1.0.0'。请参阅Jetpack 工件映射。然后,您需要更改 MyWatchFaceService.java 中的导入语句。

最后将以下行添加到 gradle.properties:

android.useAndroidX=true

推荐阅读