打包 Wear 应用
警告
可能不再维护以下文档和示例项目。 从 Xamarin.Android 11.1 开始,不再支持在 Android 手持应用程序中自动打包 Android Wear 应用程序。 建议改为将 Android Wear 应用程序分发为独立应用程序。
Android Wear 1.0 应用与完整的 Android 应用一起打包,以便在 Google Play 上分发。
Android Wear 2.0 应用可以作为独立应用程序提交到 Google Play。
自动打包
从 Xamarin Android 5.0 开始,从 Handheld 项目向 Wear 项目创建项目引用时,Wear 应用将自动打包为 Handheld 应用中的资源。 可以使用以下步骤创建此关联:
如果 Wear 应用尚未成为 Handheld 解决方案的一部分,请右键单击解决方案节点并选择“添加”>“添加现有项目...”。
导航至 Wear 应用的 .csproj 文件,选择该文件并单击“打开”。 Wear 应用项目现在应该在 Handheld 解决方案中可见。
右键单击“引用”节点,然后选择“添加引用”。
在“引用管理器”对话框中,启用 Wear 项目(单击可添加复选标记),然后单击“确定”。
更改 Wear 项目的包名称,使其与 Handheld 项目的包名称相匹配(可在“属性”>“Android 清单”下更改包名称)。
请注意,如果 Wear 应用的包名称与 Handheld 应用的包名称不匹配,你将收到 XA5211 错误。 例如:
Error XA5211: Embedded wear app package name differs from handheld
app package name (com.companyname.mywearapp != com.companyname.myapp). (XA5211)
若要更正此错误,请更改 Wear 应用的包名称,使其与 Handheld 应用的包名称匹配。
单击“生成”>“全部生成”时,该关联会触发将 Wear 项目自动打包到主 Handheld (Phone) 项目中的过程。 Wear 应用会自动生成,并作为资源包含在 Handheld 应用中。
Wear 应用项目生成的程序集不会用作 Handheld (Phone) 项目中的程序集引用。 生成过程执行以下操作:
验证包名称是否匹配。
生成 XML 并将其添加到 Handheld 项目,以将其与 Wear 应用相关联。 例如:
<!-- Handheld (Phone) Project.csproj --> <ProjectReference Include="..\MyWearApp\MyWearApp.csproj"> <Project>{D80E1FEF-653B-448C-B2AA-609C74E88340}</Project> <Name>MyWearApp</Name> <IsAppExtension>True</IsAppExtension> </ProjectReference>
将 Wear 应用作为原始资源添加到 Handheld 项目。
手动打包
可以使用 5.0 版之前的 Xamarin.Android 编写 Android Wear 应用,但必须按照以下手动打包说明分发应用:
确保 Wearable 项目和 Handheld (Phone) 项目具有相同的版本号和包名称。
将 Wearable 项目手动生成为“发布”版本。
将步骤 (2) 中的发布 .APK 手动添加到 Handheld (Phone) 项目的“Resources/raw”目录中。
在 Handheld 项目中手动添加一个新的 XML 资源“Resources/xml/wearable_app_desc.xml”,其中引用了步骤 (3) 中的 Wearable APK:
<wearableApp package="wearable.app.package.name"> <versionCode>1</versionCode> <versionName>1.0</versionName> <rawPathResId>NAME_OF_APK_FROM_STEP_3</rawPathResId> </wearableApp>
将元素
<meta-data />
手动添加到与新 XML 资源引用的“手持”项目的AndroidManifest.xml<application>
元素:<meta-data android:name="com.google.android.wearable.beta.app" android:resource="@xml/wearable_app_desc"/>
另请参阅 Android 开发人员站点的手动打包说明。