android - 如何运行“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 的“实际”版本一起运行?
谢谢,托尔斯滕
解决方案
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
推荐阅读
- java - Javac 是如何编译成可执行文件的?
- python - 如何正确地将 Python 中的 BCP 命令发送到远程服务器?
- jison - JISON:如何避免“dog”被解析为“do”?
- postgresql - 如何保持我的 Strapi 服务器(托管在 Heroku 和 Netlify)在线?
- java - Java jdbc 检查表是否存在
- python - 将文本框输入(html页面)转换为flask(Python)中的字典
- javascript - 如何将数据从控制器传递到javascript?
- php - Laravel 用两个 Fk 急切加载到同一张表
- javascript - 显示弹出窗口而不是重定向到购物车(Shopify)
- sql - 如何使用带有交叉应用的 SQL OPENJSON 函数测量 json 文件中数组内数组的长度