【问题标题】:Android wear packaging not workingAndroid Wear 包装不起作用
【发布时间】:2014-09-16 09:15:50
【问题描述】:

我正在尝试打包 Android Wear 应用,但手表中没有自动安装 Wear 应用。

我正在使用 Eclipse 手动打包磨损应用程序,如此处所述

https://developer.android.com/training/wearables/apps/packaging.html#PackageManually

日志还显示已安装穿戴应用程序,但我在手表中找不到该应用程序。这是安装日志,

09-16 12:55:08.135: D/Finsky(11998): [1] WorkerTask.onPreExecute: Verification Requested for id = 4, data=file:///storage/emulated/0/Download/WearCompanion.apk flags=16 fromVerificationActivity=false
09-16 12:55:13.955: D/PackageManager(2339): Sending to user 0: act=android.intent.action.PACKAGE_ADDED dat=package:com.titut.wear flg=0x8000000 Bundle[{android.intent.extra.UID=10013, android.intent.extra.user_handle=0}]
09-16 12:55:14.160: I/HomeSyncInstallReceiver(2711): Package Added : com.titut.wear
09-16 12:55:14.930: D/BackupManagerService(2339): Received broadcast Intent { act=android.intent.action.PACKAGE_ADDED dat=package:com.titut.wear flg=0x8000010 (has extras) }
09-16 12:55:14.950: D/ECS_EnterpriseContainerService(2339): <<< Intent data is   >>> : package:com.titut.wear
09-16 12:55:14.975: D/[FileShare][Server](12291): ServerBroadcastReceiver : onReceive: android.intent.action.PACKAGE_ADDED // package:com.titut.wear
09-16 12:55:15.130: I/SmartCardBroadcastReceiver(11980): foundMatchingVendorPackage - Checking for com.titut.wear
09-16 12:55:15.195: I/CrashAnrDetector(2339): onPackageAdded : com.titut.wear
09-16 12:55:15.320: D/PackageBroadcastService(6283): Received broadcast action=android.intent.action.PACKAGE_ADDED and uri=com.titut.wear
09-16 12:55:15.365: I/IcingCorporaProvider(3480): Updating corpora: APPS=com.titut.wear, CONTACTS=MAYBE
09-16 12:55:15.400: D/WearablePkgInstaller(3243): Got PackageUpdateReceiver message Intent { act=android.intent.action.PACKAGE_ADDED dat=package:com.titut.wear flg=0x8000010 cmp=com.google.android.wearable.app/com.google.android.clockwork.companion.packagemanager.PackageUpdateReceiver (has extras) }

会是什么错误?有什么建议?谢谢。

注意:我正在使用以下命令在配套移动设备中安装应用程序

adb install WearCompanion.apk

更新:

Wear 应用清单

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.titut.wear"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-feature android:name="android.hardware.type.watch" />
    <uses-permission android:name="android.permission.VIBRATE" />

    <uses-sdk
        android:minSdkVersion="20"
        android:targetSdkVersion="20" />

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@android:style/Theme.DeviceDefault" >
        <meta-data
            android:name="com.google.android.gms.version"
            android:value="@integer/google_play_services_version" />

        <activity
            android:name="com.titut.wear.LoadingActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity
            android:name="com.titut.wear.MainActivity"
            android:label="@string/app_name" >
        </activity>
        <activity
            android:name="com.titut.wear.OfferDetailActivity"
            android:label="@string/app_name" >
        </activity>

        <service android:name="com.titut.wear.OngoingNotificationListenerService" >
            <intent-filter>
                <action android:name="com.google.android.gms.wearable.BIND_LISTENER" />
            </intent-filter>
        </service>
    </application>

</manifest>

配套应用清单

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.titut.wear"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="17"
        android:targetSdkVersion="20" />

    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.BLUETOOTH" />
    <uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
    <uses-permission android:name="android.permission.VIBRATE" />

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

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >

        <activity
            android:name="com.titut.companion.MainActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

        <service android:name="com.titut.companion.service.MessageListenerService" >
            <intent-filter>
                <action android:name="com.google.android.gms.wearable.BIND_LISTENER" />
            </intent-filter>
        </service>

        <meta-data
            android:name="com.google.android.gms.version"
            android:value="@integer/google_play_services_version" />
        <meta-data
            android:name="com.google.android.wearable.beta.app"
            android:resource="@xml/wearable_app_desc" />

        <service
            android:name="com.titut.companion.service.BeaconService"
            android:enabled="true" />
    </application>

</manifest>

原始文件夹

wearable_app_desc.xml

<wearableApp package="com.titut.wear">
  <versionCode>1</versionCode>
  <versionName>1.0</versionName>
  <rawPathResId>wearable_app</rawPathResId> 
</wearableApp>

【问题讨论】:

  • 我也有同样的问题。完全一样。
  • 从那以后你能解决它吗?
  • 您好,您解决了吗?如果你这样做了,请更新答案,谢谢:)

标签: android eclipse apk wear-os


【解决方案1】:

在设备中安装应用程序之前,请检查以下内容。

1) 你的PhoneAppPackage 名称和wearApp Packagename 必须相同

2) 在 Xml 文件夹中 appPathResid 和你添加的 Apk 文件名必须相同

3)您是否使用原始设备进行测试,然后仅打开蓝牙调试,或者如果您使用模拟器和真实手机,则打开 USB 调试

就是这样……

【讨论】:

  • 我认为问题是“com.titut.companion”包名替换为“com.titut.wear.youractivity”。
  • 还要检查您的 wearable_app_desc.xml 文件中的 标签
  • "com.titut.companion" 是文件夹结构而不是应用程序 ID。我为磨损和配套应用程序“com.titut.wear”使用了相同的应用程序 ID(捆绑标识符)。 标签也是错字...现在更新了。
  • android:theme="@style/AppTheme"
【解决方案2】:

Wear 应用不会在使用调试密钥签名时自动推送到设备。 您需要通过使用 Eclipse 调试手动将安装推送到设备,或者使用发布密钥对移动 APK 进行签名:

注意:可穿戴应用的自动安装不起作用 您正在使用调试密钥签署应用程序,并且仅适用于发布 键。见Packaging Wearable Apps 有关如何正确打包可穿戴应用程序的完整信息。

更多详情:https://developer.android.com/training/wearables/apps/creating.html#Install

【讨论】:

  • 我使用的是发布密钥而不是调试密钥
【解决方案3】:

移动应用/配套应用中的权限必须与穿戴应用中的权限相同。在您的穿戴清单中只有一个权限,但在移动清单中有五个。将移动清单权限复制到穿戴清单。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-10-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-21
    • 2014-12-25
    • 1970-01-01
    相关资源
    最近更新 更多