Android - 重新定义 class 从支持库中移除 (AsyncTaskCompat)

Android - redefining class removed from support library (AsyncTaskCompat)

首先,如果我没有包含回答这个问题所需的所有信息,我深表歉意。我对 Android 开发有些陌生,我仍然在研究构建工具、API 关卡等。所以请让我知道是否有任何我应该提供的额外信息来帮助你帮助我!

更新我的Android项目编译sdk版本到27后,我发现com.android.support:support-v427.0.2版本不再包含AsyncTaskCompat(那个class已被弃用并删除)。

我有一个第三方库,它不是开源的、不容易替换的、不再受支持但仍在使用 AsyncTaskCompat

由于 AsyncTaskCompat 是开源的,我想我可以通过在我的项目中重新定义它来简单地重新引入它。

我尝试在 com.android.support.v4.os 中的项目下重新定义它,但即使项目编译没有任何问题,当我 运行 使用第三方库的应用程序部分时,我得到class 未找到 AsyncTaskCompat.

错误的崩溃

有什么明显的我可能遗漏的东西吗?

经过又一天的黑客攻击后,在这里回答我自己的问题。

事实上可以重新实现这些 deprecated/removed 类 以依赖项能够使用它的方式。

此处描述了这些步骤,以备日后有人需要

  1. 为您的应用创建一个新的 Android 库模块
  2. 使用适当的命名空间
  3. 重新实现缺失的类

在我的例子中,我需要重新实现开源的 android.support.v4.os.AsyncTaskCompat,所以我所要做的就是从源代码中复制代码。

  1. 将模块添加为您的主应用模块的依赖项。

无需添加特定的 Android 库模块。

仅使用包名 "android.support.v4.os":

将下面的 类 添加到您的项目中