【发布时间】:2017-10-07 18:57:15
【问题描述】:
我有一个项目正在尝试添加 Android Auto 支持。我已将以下代码添加到我的清单中,如 Auto 文档中所示:
<application
....
<meta-data android:name="com.google.android.gms.car.application"
android:resource="@xml/automotive_app_desc"/>
....
<service
android:name="com.me.auto.MyMediaBrowserService"
android:exported="false">
<intent-filter>
<action android:name="android.media.browse.MediaBrowserService" />
</intent-filter>
</service>
....
</applicaiton>
我还在使用不同的构建风格,在我的 gradle.build 文件中定义:
defaultConfig {
applicationId "com.me"
minSdkVersion 16
//noinspection OldTargetApi
targetSdkVersion 22
versionCode 1
versionName "1.0"
}
productFlavors {
regular {
applicationId "com.me"
}
different {
applicationId "com.meother"
}
}
当我使用“常规”风格构建和安装时,android auto 不起作用。但是,当我使用“不同”风格构建和安装时,一切都很好。如果我随后将常规的 applicaitonId 更改为“com.menew”之类的其他名称,那么 Auto 再次运行良好。
构建风格中的applicationId 如何影响或破坏 Android Auto 功能?
【问题讨论】:
-
显示您的 defaultConfig{} 定义和包名称。还可以尝试将常规 { applicationId "com.me" } 替换为常规 { applicationIdSuffix ".me" }。您的包名称可能与您的 applicationId 冲突是很安静的。 com.me 是 com.me.auto 包的子包。
-
@AnuragSingh - 我已经用默认配置更新了我的问题。
-
您是否尝试过我分享的关于应用程序后缀的建议,然后尝试使用常规风格创建构建。
-
我做到了。但是,这会使最终的包 id 为“com.me.me”,对吗?
-
是的,您说得非常正确,但 Android auto 应该可以工作。如果它有效,那么它只是 applicationId 名称之间的冲突。请让我知道结果。
标签: android gradle android-auto