Java Android-重新定义从支持库中删除的类(AsyncTaskCompat)
首先,如果我没有提供回答这个问题所需的所有信息,我深表歉意。我对Android开发有些陌生,但我仍在了解构建工具、API级别等。因此,如果有任何其他信息需要我提供,请告诉我 在将我的Android project compile sdk版本更新到27之后,我意识到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
com.Android.support:support-v4
的版本27.0.2
不再包括AsyncTaskCompat
(该类已被弃用和删除)
我有一个第三方库,它不是开源的,不容易替换,不再受支持,仍然使用AsyncTaskCompat
由于AsyncTaskCompat
是开源的,我想我可以通过在我的项目中重新定义它来重新引入它
我曾尝试在com.android.support.v4.os
中的项目下重新定义它,但即使项目编译时没有任何问题,当我运行应用程序中使用第三方库的部分时,我遇到了一个崩溃,出现了AsyncTaskCompat
的类未找到错误
在又一天的黑客攻击之后,我在这里回答了我自己的问题 事实上,可以以依赖项能够使用的方式重新实现这些不推荐使用/删除的类 这里描述了这些步骤,以备将来有人需要
无需添加特定的Android库模块 仅使用包名“android.support.v4.os”将下面的类添加到项目中:
AsyncTaskCompat
此类在API级别26.0.0中被弃用。直接使用AsyncTask
。该类已弃用,如果被删除,则在该库中无法使用。因此,您有两种选择,要么替换库中的那段代码,要么开发一种变通方法,要么替换该库:)谢谢。我已经看过文件了,这就是为什么我要问这个问题@Umair您是否建议对库进行反编译、更改任何源文件并重新编译?还有什么我可以做的吗?@Rog是的,如果您可以将库中的AsyncTaskCompat更改为AsyncTask。在我看来,你在这里的选择有限。或者将您的sdk版本限制为26,但我认为这不是一个好的版本。@Rog如果您需要使用此库而不替换它,最简单的解决方案是在构建中降低构建工具的版本。gradle
在构建.gradle
依赖项中使用support-v4
的v25+变体。