Android Wear应用未安装。

21

今天我们发布了我们的第一个可穿戴应用程序,但遗憾的是,它并没有像应该那样自动安装。

我们已经仔细检查了APK文件,可穿戴式apk文件也存在,但从未到达手表。按照此处建议的手动打包APK也没有起作用 http://android-developers.blogspot.de/2014/07/update-on-android-wear-paid-apps.html(我们知道这只会影响付费应用,但为了确保万无一失)

还有其他人遇到这个问题吗?如果我们通过adb安装APK,则应用程序可以正常工作。


1
可能是一个愚蠢的问题,但也许你仍然安装了调试应用程序?如果是这种情况,我猜它不会被安装,因为签名不同。 - matiash
7个回答

22
  • 检查权限。智能手机部分需要具备与穿戴组件相同的所有权限。
  • 使用相同的包标识符来命名两个应用程序(穿戴和移动应用)。

在将Android Studio更新到最新版本并向智能手机应用程序添加缺失的权限后,它可以正常工作。所以我猜那就是问题所在。奇怪的是logcat中没有错误消息。 - onigunn
@onigum:你能告诉我在你的穿戴应用清单中添加了哪个缺失的权限吗?我有一个奇怪的问题,它是否类似于这个:https://dev59.com/7YHba4cB1Zd3GeqPTZqK - TheDevMan
@TheDevMan 的意思是:在 Wearable 应用程序中声明的所有权限都必须包含在移动应用程序中。换句话说,您的移动应用程序应该收集所有权限:这些权限用于移动应用程序 + 这些权限由可穿戴应用程序使用。 - Maciej Ciemięga
@MaciejCiemięga 我除了已经存在于我的移动应用程序中的训练营之外没有任何权限...我还在移动设备和智能手表中输入了 <uses-feature android:name="android.hardware.type.watch" />...两者具有相同的软件包名称,但我仍然遇到问题.. - TheDevMan
@MaciejCiemięga:我在我的Android Wear项目中只有一个按钮,当我按下这个按钮时,我会收到来自手机的数据。在调试模式下它工作得很好。我需要在我的手机应用程序中做什么,来说明Wear已连接并安装了Android Wear应用程序吗? - TheDevMan
这个程序有很多漏洞...有时候还会卡很久。我甚至重置了我的智能手表。 - powder366

8
我在这上花费了很长时间。 wearApp gradle 规则对我很有效。但是,对于应用程序的付费版本,按照 博客 上的指南手动打包wear应用程序时,它不会自动加载到可穿戴设备上。经过多次检查,我发现 Android Studio 0.8.2 上的 wearApp gradle 规则确实将可穿戴 APK 放置在 raw 文件夹中,如博客文章修复所述。因此,似乎已在最新的 Android Studio 中解决了问题(没有被告知?)。由于某种原因,手动打包 APK 并未起作用。
因此请使用 wearApp gradle 规则。
此外,如果您需要为不同的手持 APK 版本引用不同版本的 wear APK(以使免费和专业版具有与可穿戴版本匹配的 applicationId),请使用 wear gradle 配置中的 productFlavors。
productFlavors {
    freeapp {
        applicationId "com.barkside.appfree"
    }

    proapp {
        applicationId "com.barkside.apppro"
    }
}

然后在您的Pro版本gradle中(例如),将wearApp依赖项定位到特定配置:

wearApp project(path: ':wear', configuration: 'proappRelease')

你还需要在wear gradle的android块中添加publishNonDefault true

3
有没有相关文档?wearApp project(path: ':wear', configuration: 'proappRelease') - Gak2
1
当我执行wearApp项目(路径:':wear',配置:'freeRelease')时,出现错误Error:(63,0)构建脚本错误,发现不支持的Gradle DSL方法:'project()'!你有任何想法吗? - jaumard
1
是的,我也遇到了同样的问题,但是我的手持和可穿戴模块中都有口味,我使用了这个 https://dev59.com/Luo6XIcBkEYKwwoYIAsf#37657444 - PavelGP
此内容的文档可以在此处找到:http://tools.android.com/tech-docs/new-build-system/user-guide#TOC-Library-Publication - Joen93

6
我遇到了同样的问题,帮助我的方法是添加


<uses-feature android:name="android.hardware.type.watch" android:required="false"/>

移动设备的清单文件。

这对我也起作用了,但为什么呢?现在它表明 Wear 应用程序可以安装在不是手表的硬件上。 - Donal Rafferty
解决了我的问题。谢谢! - Brett Green

3
我的解决方法是移除产品口味。现在我不能有针对特定口味的代码,但如果不这样做,Android就无法在发布时打包穿戴应用程序。详情请参见:Android Wear app not installing through handset

现在您可以使用更好的方法,请查看https://dev59.com/Luo6XIcBkEYKwwoYIAsf#37657444。 - PavelGP

1
你应该在两个设备上检查adb logcat以查看发生了什么。它会提供错误消息来指示可能出现的问题。
此外,当你在本地测试时,只需将手机APK安装到手机上,并让它将嵌入式APK安装到可穿戴设备上。然后你就不需要通过Play商店进行测试。确保进行发布构建,因为这些是唯一使用wearApp() gradle规则进行嵌入式APK的构建。

我曾经遇到过相同的问题,adb日志没有提供任何有用的信息。我会看到一行似乎表明它正在将应用程序发送到手表,而手表adb日志上却没有任何信息。在我的情况下,移动和穿戴应用程序之间的权限不匹配。但您是正确的,当正确设置后,它将使用已签名的发布版本安装到手表上。无需完全发布到Play商店进行测试。 - Jeff
@JeffTyson:你能告诉我在你的穿戴应用清单中缺少了哪个权限吗?我有一个奇怪的问题,它是否类似于这个:https://dev59.com/7YHba4cB1Zd3GeqPTZqK - TheDevMan

0

我在安装应用程序时遇到了问题,我认为是因为手表在安装时重置了。我不得不取消手表的绑定,重新安装后一切正常。也许可以帮助其他人。


-1

这听起来可能是一个基础而愚蠢的答案。但当我做测试时,我忘记了在Android Studio中,您可以通过点击播放按钮来运行应用程序,并将其从移动设备更改为可穿戴设备。我只安装了移动应用程序,而没有在可穿戴设备上安装可穿戴应用程序。

希望这能帮助到某些人。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接