Android - 重新定义 class 从支持库中移除 (AsyncTaskCompat)
Android - redefining class removed from support library (AsyncTaskCompat)
首先,如果我没有包含回答这个问题所需的所有信息,我深表歉意。我对 Android 开发有些陌生,我仍然在研究构建工具、API 关卡等。所以请让我知道是否有任何我应该提供的额外信息来帮助你帮助我!
更新我的Android项目编译sdk版本到27后,我发现com.android.support:support-v4
的27.0.2
版本不再包含AsyncTaskCompat
(那个class已被弃用并删除)。
我有一个第三方库,它不是开源的、不容易替换的、不再受支持但仍在使用 AsyncTaskCompat
。
由于 AsyncTaskCompat
是开源的,我想我可以通过在我的项目中重新定义它来简单地重新引入它。
我尝试在 com.android.support.v4.os
中的项目下重新定义它,但即使项目编译没有任何问题,当我 运行 使用第三方库的应用程序部分时,我得到class 未找到 AsyncTaskCompat
.
错误的崩溃
有什么明显的我可能遗漏的东西吗?
经过又一天的黑客攻击后,在这里回答我自己的问题。
事实上可以重新实现这些 deprecated/removed 类 以依赖项能够使用它的方式。
此处描述了这些步骤,以备日后有人需要
- 为您的应用创建一个新的 Android 库模块
- 使用适当的命名空间
重新实现缺失的类
在我的例子中,我需要重新实现开源的 android.support.v4.os.AsyncTaskCompat
,所以我所要做的就是从源代码中复制代码。
- 将模块添加为您的主应用模块的依赖项。
无需添加特定的 Android 库模块。
仅使用包名 "android.support.v4.os":
将下面的 类 添加到您的项目中
首先,如果我没有包含回答这个问题所需的所有信息,我深表歉意。我对 Android 开发有些陌生,我仍然在研究构建工具、API 关卡等。所以请让我知道是否有任何我应该提供的额外信息来帮助你帮助我!
更新我的Android项目编译sdk版本到27后,我发现com.android.support:support-v4
的27.0.2
版本不再包含AsyncTaskCompat
(那个class已被弃用并删除)。
我有一个第三方库,它不是开源的、不容易替换的、不再受支持但仍在使用 AsyncTaskCompat
。
由于 AsyncTaskCompat
是开源的,我想我可以通过在我的项目中重新定义它来简单地重新引入它。
我尝试在 com.android.support.v4.os
中的项目下重新定义它,但即使项目编译没有任何问题,当我 运行 使用第三方库的应用程序部分时,我得到class 未找到 AsyncTaskCompat
.
有什么明显的我可能遗漏的东西吗?
经过又一天的黑客攻击后,在这里回答我自己的问题。
事实上可以重新实现这些 deprecated/removed 类 以依赖项能够使用它的方式。
此处描述了这些步骤,以备日后有人需要
- 为您的应用创建一个新的 Android 库模块
- 使用适当的命名空间 重新实现缺失的类
在我的例子中,我需要重新实现开源的 android.support.v4.os.AsyncTaskCompat
,所以我所要做的就是从源代码中复制代码。
- 将模块添加为您的主应用模块的依赖项。
无需添加特定的 Android 库模块。
仅使用包名 "android.support.v4.os":
将下面的 类 添加到您的项目中