解决失败: Landroidx/work/impl/utils/futures/AbstractFuture

3

Runtime Error
Failed resolution of: Landroidx/work/impl/utils/futures/AbstractFuture;

我知道这个错误是在编译时有些类可用,但在运行时不可用。但这似乎不是我的情况,因为当我反编译我的APK时,所有必要的类(包括androidx.work.impl.utils.futures.AbstractFuture)都存在!我尝试过2.3.4、2.4.0和2.5.0_Alpha01版本的work-runtime库,但它们都似乎没有起作用。如果有人能帮我解决这个问题,那真是太好了。=)
注:附带一提,我正在处理的项目非常古老,不幸的是,它仍然使用Apache Ant。而且,我们不会很快迁移到Gradle,因为这将影响整个架构并需要大量时间。因此,任何建议修改build.gradle的解决方案都不会很有帮助。:)
编辑:如果有人需要查看ADB日志:
...
09-05 20:47:01.536 25688 25688 W System.err: java.lang.NoClassDefFoundError: Failed resolution of: Landroidx/work/impl/utils/futures/AbstractFuture;
09-05 20:47:01.536 25688 25688 W System.err:    at androidx.work.WorkManager.initialize(WorkManager.java:210)
09-05 20:47:01.536 25688 25688 W System.err:    at androidx.work.impl.WorkManagerInitializer.onCreate(WorkManagerInitializer.java:40)
09-05 20:47:01.537 25688 25688 W System.err:    at android.content.ContentProvider.attachInfo(ContentProvider.java:2102)
09-05 20:47:01.537 25688 25688 W System.err:    at android.content.ContentProvider.attachInfo(ContentProvider.java:2076)
09-05 20:47:01.537 25688 25688 W System.err:    at android.app.ActivityThread.installProvider(ActivityThread.java:7430)
09-05 20:47:01.537 25688 25688 W System.err:    at android.app.ActivityThread.installContentProviders(ActivityThread.java:6934)
09-05 20:47:01.537 25688 25688 W System.err:    at android.app.ActivityThread.handleBindApplication(ActivityThread.java:6851)
09-05 20:47:01.537 25688 25688 W System.err:    at android.app.ActivityThread.access$1600(ActivityThread.java:242)
09-05 20:47:01.537 25688 25688 W System.err:    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2063)
09-05 20:47:01.537 25688 25688 W System.err:    at android.os.Handler.dispatchMessage(Handler.java:107)
09-05 20:47:01.537 25688 25688 W System.err:    at android.os.Looper.loop(Looper.java:227)
09-05 20:47:01.537 25688 25688 W System.err:    at android.app.ActivityThread.main(ActivityThread.java:7822)
09-05 20:47:01.537 25688 25688 W System.err:    at java.lang.reflect.Method.invoke(Native Method)
09-05 20:47:01.537 25688 25688 W System.err:    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492)
09-05 20:47:01.537 25688 25688 W System.err:    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1026)
09-05 20:47:01.537 25688 25688 W System.err: Caused by: java.lang.ClassNotFoundException: androidx.work.impl.utils.futures.AbstractFuture
09-05 20:47:01.537 25688 25688 W System.err:    ... 15 more
...
2个回答

3

我曾经遇到过类似的问题,这通常是由于依赖冲突所引起的。以下是我解决这个问题所采取的措施:使用这个依赖项 "implementation 'com.google.guava:guava:28.2-android",并确保在build.gradle文件中删除相应的内容。

      configurations.all {
            resolutionStrategy {
                exclude group: 'com.google.guava', module: 'listenablefuture'
            }
        }

3
我今天解决了一个类似的问题,实际上问题是缺少了一个 ListenableFuture,尽管异常头看起来和你的一样。
我之前已经将这个添加到我的构建文件中:
implementation 'com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava'

我这样做是为了避免类重复错误,因为Guava是从其他地方导入的(也可以参见这个问题)。 之后,当那个依赖不再依赖Guava时,之前解决问题的导入现在引起了问题。再次删除它就解决了问题。


谢谢你的回答。虽然对我没有用。现在我得到了这个错误:java.lang.NoClassDefFoundError: androidx.work.impl.utils.futures.SettableFuture - Shreyash Saitwal
我在使用非Gradle构建Android方面没有太多经验,但我认为无论如何,如果您能分享更多关于导入什么以及如何导入的细节,那将非常有用。 - Namnodorel
抱歉,我没有完全理解你的问题。你所说的“导入了什么以及如何导入”是指什么?如果你是在问我使用了哪些库,那就是包括androidx.work-runtime所依赖的所有内容,以及项目所需的许多其他外部依赖项。该项目不是一个安卓应用程序,而是由MIT维护的开源无代码应用程序开发平台。这是它的GitHub存储库链接:https://github.com/mit-cml/appinventor-sources - Shreyash Saitwal

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接