4

我想使用28.0.0-alpha1设计支持库版本中引入的新材料组件。

我发现如果不设置compileSdkVersion为,这个版本的设计库将无法编译android-P,因为它引用了仅在 API 级别 28 上找到的属性(例如,android:attr/dialogCornerRadius)。

另一方面,Google Play 控制台不允许我上传应用程序定位android-P,它给了我错误“您无法上传仅测试的 APK”。正如这些文档所述,这似乎是故意的:

Google Play 禁止发布针对 P Developer Preview 的应用程序。当 Android P 最终版 SDK 可用时,您将能够以官方 Android P API 级别为目标,并通过 alpha、beta 和生产发布渠道将您的应用发布到 Google Play。

这真的意味着新组件还不能用于生产应用程序吗?

4

2 回答 2

2

这真的意味着新组件还不能用于生产应用程序吗?

它应该用于试用目的,但不应发布给最终用户。顾名思义,它仍处于预览阶段,尚未最终确定。

从开发人员的角度来看,目的是让我们在最终版本发布之前熟悉 API,并通过使用新 API 为我们的应用程序更新做好准备,从而为用户提供最佳体验。这也使我们能够事先检查兼容性,并为遵守新的变化和政策做好准备。

从 Google 的角度来看,他们有机会执行一些测试,从开发人员那里获得反馈以微调他们的实施并修复在此过程中发现的问题。简而言之,他们将开发人员用作新 API 和功能的测试人员。最终的 API 可能会有一些剧烈的变化,这可能会破坏我们应用程序的预期行为,因此 Google 不鼓励并阻止我们意外上传到 Play 商店。

于 2018-06-03T07:42:57.760 回答
1

更新:根据这篇博文,现在正式支持发布面向 Android P 的应用程序。

从今天开始,您可以发布针对 API 28 编译或选择以 API 28 为目标的 APK 更新。在预览期间向 Google Play 发布更新可让您将更新推送给用户,以测试现有设备(包括运行 Android P Beta 2 的设备)的兼容性。

下面的旧答案。


同时,感谢reddit上的/u/slartibartfast_iv ,我找到了一种解决方法。

我最初认为 Play Console 正在检查应用程序是否针对 Android P Preview 并且只是显示误导性错误消息。事实证明,它实际上只是检查是否设置了仅测试标志,如果您的目标是 P 预览版,则由 Android Studio 在编译时完成。

但是,您可以像对任何其他构建一样禁用它(请参阅此答案),我具体所做的是将以下内容添加到我的gradle.properties

android.injected.testOnly=false
于 2018-06-03T10:49:12.183 回答