近日为英语✓添加7.1的 App shortCut 功能,实现静态 ShortCut 只需要改动两个地方。一是在 AndroidManifest.xml 中为目标Activity添加
1 |
|
二就是配置 shortcuts.xml
1 |
|
这样,shortcut 就已经完成了。
但是,当我配置完成测试时 Nova启动器直接崩溃,pixel启动器显示“App could not install”。问题出在 targetPackage
属性。这里的 targetPackage
指在build.gradle 中的 applicationId
字段,而不是 AndroidManifest 中的 packname。
packname 是 Java 语言所用的,在代码中作为命名空间。android 中使用 applicationId 作为一个应用程序的唯一标识,通常说的包名事实上指的是 applicationId。applicationId 会覆盖 packname ,官网说明如下:
Although you may have a different name for the manifest
package
and the GradleapplicationId
, the build tools copy the application ID into your APK’s final manifest file at the end of the build. So if you inspect yourAndroidManifest.xml
file after a build, don’t be surprised that thepackage
attribute has changed.
当初建项目时没有留意,packname 使用了 applicationId 名称的大写,复制 packname 到 shortcut.xml 中的 targetPackage 会导致启动器找不到包。