Java Android-重新定义从支持库中删除的类(AsyncTaskCompat)

Java Android-重新定义从支持库中删除的类(AsyncTaskCompat),java,android,android-appcompat,Java,Android,Android Appcompat,首先,如果我没有提供回答这个问题所需的所有信息,我深表歉意。我对Android开发有些陌生,但我仍在了解构建工具、API级别等。因此,如果有任何其他信息需要我提供,请告诉我 在将我的Android project compile sdk版本更新到27之后,我意识到com.Android.support:support-v4的版本27.0.2不再包括AsyncTaskCompat(该类已被弃用和删除) 我有一个第三方库,它不是开源的,不容易替换,不再受支持,仍然使用AsyncTaskCompat

首先,如果我没有提供回答这个问题所需的所有信息,我深表歉意。我对Android开发有些陌生,但我仍在了解构建工具、API级别等。因此,如果有任何其他信息需要我提供,请告诉我

在将我的Android project compile sdk版本更新到27之后,我意识到
com.Android.support:support-v4
的版本
27.0.2
不再包括
AsyncTaskCompat
(该类已被弃用和删除)

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

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

我曾尝试在
com.android.support.v4.os
中的项目下重新定义它,但即使项目编译时没有任何问题,当我运行应用程序中使用第三方库的部分时,我遇到了一个崩溃,出现了
AsyncTaskCompat
的类未找到错误


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

事实上,可以以依赖项能够使用的方式重新实现这些不推荐使用/删除的类

这里描述了这些步骤,以备将来有人需要

  • 为你的应用创建一个新的Android库模块
  • 使用适当的命名空间重新实现缺少的类
  • 在我的例子中,我需要重新实现android.support.v4.os.AsyncTaskCompat,它是开源的,所以我所要做的就是从源代码复制代码

  • 将模块添加为主应用程序模块的依赖项

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

    仅使用包名“android.support.v4.os”将下面的类添加到项目中:


    来自docs
    AsyncTaskCompat
    此类在API级别26.0.0中被弃用。直接使用
    AsyncTask
    。该类已弃用,如果被删除,则在该库中无法使用。因此,您有两种选择,要么替换库中的那段代码,要么开发一种变通方法,要么替换该库:)谢谢。我已经看过文件了,这就是为什么我要问这个问题@Umair您是否建议对库进行反编译、更改任何源文件并重新编译?还有什么我可以做的吗?@Rog是的,如果您可以将库中的AsyncTaskCompat更改为AsyncTask。在我看来,你在这里的选择有限。或者将您的sdk版本限制为26,但我认为这不是一个好的版本。@Rog如果您需要使用此库而不替换它,最简单的解决方案是在
    构建中降低
    构建工具的
    版本。gradle
    构建.gradle
    依赖项中使用
    support-v4
    的v25+变体。