从Kotling 1.3.21更新到1.3.30后生成错误:
AppComponent.java:16: error: [Dagger/MissingBinding]
java.util.Map<java.lang.Class<? extends androidx.lifecycle.ViewModel>,
javax.inject.Provider<androidx.lifecycle.ViewModel>>
cannot be provided without an @Provides-annotated method.
Run Code Online (Sandbox Code Playgroud)
在两个对Kotlin,Dagger和Architecture组件具有相似依赖性的不同项目上进行了复制。
我怀疑它与kotlin 1.3.30中的最近kapt更新有关:https ://blog.jetbrains.com/kotlin/2019/04/kotlin-1-3-30-released/
试图禁用/启用文章中的kapt选项,尝试了gradle clean,使缓存无效,没有任何帮助。只有降级到1.3.21项目才能成功构建。
重现的步骤(测试帐户):
预计:订阅不再在billingClient列表中.queryPurchases(SUB_SKU_TYPE)返回
实际:订阅仍在列表中的billingClient.queryPurchases(SUB_SKU_TYPE)返回(即使在约1小时后)
报告错误:https://github.com/googlesamples/android-play-billing/issues/122
正如文档中所述,queryPurchases可以在不进行任何网络调用的情况下使用缓存,这可能是导致此问题的原因.queryPurchaseHistoryAsync可能是一个不错的选择,但Purchase类没有实际购买的状态(即SUBSCRIBED,CANCELLED等).
是否有任何选项可以使用Play Billing Lib解决此问题,或者是否需要使用旧的In-App Billing Api进行直接网络呼叫?
当我试图中断查询以获得更好的可读性/理解性时,它会停止被 IDE 检查。这发生在 Android Studio 3.2 canary 16 和 3.1.2 stable、kotlin 版本 1.2.41 上。
当 Room DAO 是 java 类/接口时,一切正常。是否可以在 kotlin 中对 2+ 行查询进行与 Java 中相同的检查/突出显示?
kotlin android-sqlite android-studio android-room android-architecture-components
给定 N 个片段,代表同一实体的不同 UI。片段有条件地显示。该条件仅在运行时已知。每个片段应该有相同的导航流。
如何使用导航架构组件 XML 图从片段中概括/抽象导航流以进一步重用?目前,我只看到为每个片段创建单独的目的地或嵌套导航的方式,但就重用而言,这是一个糟糕的想法。另一种选择是在 Kotlin/Java 代码中进行所有条件转换,但在这种情况下,应用程序的流程将不会在导航图架构中描述。有没有更好的方法来重用导航?
关于这个主题的官方文档非常空洞:https : //developer.android.com/topic/libraries/architecture/navigation/navigation-conditional
android android-fragments android-navigation android-architecture-components android-architecture-navigation
android ×3
android-architecture-components ×2
kotlin ×2
android-architecture-navigation ×1
android-room ×1
dagger ×1
dagger-2 ×1
google-play ×1