小编ste*_*neo的帖子

如何避免在每次 CI 运行时对 aar 依赖项运行 jetifier 转换

我们正在努力减少 jetifier 转换对我们的 CI 构建的影响。我们正在使用 AndroidX,我们升级了所有代码以使用 AndroidX 包。我们启用了 jetifier,因此我们使用的所有依赖项都会自动迁移。我们的构建在本地和 CI 上都运行良好。但是,由于切换到 AndroidX,我们的 CircleCI 构建需要大量时间,特别是 AAR 的转换。显然,在我们更新任何依赖项之前,jetifier 步骤是可以缓存的,因此不会每次都重复转换,但是我们很难做到这一点。

我们尝试app:assembleOurFlavorDebug在 CircleCI 缓存上运行之前保存,但转换仍然在每个构建上运行。save_cache 步骤保存/gradle目录并使用一些 .gradle 文件的内容作为哈希。我们观察了 2 个连续的构建,(相同的缓存哈希)并且两次我们都注意到 Jetifier 在所有 AAR 上运行

我们希望将 jetifier 转换的结果重新用于后续构建。

continuous-integration android circleci android-jetifier

5
推荐指数
0
解决办法
184
查看次数

Android Oreo上的操作系统阻止了Geofence过渡PendingIntent

这只发生在Android Oreo上.我正在使用Play Services 11.4.2.我正在使用GeofencingClient注册地理围栏,并将带有pendingIntent的addGeofences方法注册到处理地理围栏过渡的IntentService.看起来播放服务发送的意图在某些条件下被操作系统阻止.

系统记录以下内容:

Background start not allowed: service Intent { cmp=my.app.id/my.package.struct.GeofenceTransIntentService (has extras) } to my.app.id/my.package.struct.GeofenceTransIntentService from pid=-1 uid=10154 pkg=my.app.id
Run Code Online (Sandbox Code Playgroud)

一旦我在以下情况下添加地理围栏:

  • 当我在设备启动后添加它
  • 当我在应用程序被刷卡后添加它时在两种情况下,应用程序实际上已经在后台运行(因为我能够运行添加地理围栏的代码)因为我听了PROVIDERS_CHANGED,BOOT_COMPLETED.

android google-play-services android-geofence google-location-services

2
推荐指数
1
解决办法
2815
查看次数