我按照官方说明添加 AAR 作为依赖项。 应用程序的build.gradle有:
implementation files('libs/androidLibrary-release.aar')
应用程序构建并启动正常。但是,当它使用 logcat 中包含以下内容的库方法时,它会崩溃:
java.lang.NoClassDefFoundError: Failed resolution of: Lorg/joda/time/DateTime;
at net.mydomain.android.utility.getCurrentTime(SourceFile:1)
...
Caused by: java.lang.ClassNotFoundException: Didn't find class "org.joda.time.DateTime" on path: DexPathList[[zip file "/data/app/com.mydomain.foo-1/base.apk"],nativeLibraryDirectories=[/vendor/lib, /system/lib]]
at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)
at java.lang.ClassLoader.loadClass(ClassLoader.java:511)
at java.lang.ClassLoader.loadClass(ClassLoader.java:469)
...
Caused by: java.lang.NoClassDefFoundError: Class not found using the boot class loader; no stack available
方法 getCurrentTime() 使用 joda-time。 库在其build.gradle中包含以下内容:
implementation 'joda-time:joda-time:2.10.5'
我也尝试了如下api,但没有成功:
api 'joda-time:joda-time:2.10.5'
有人可以提供提示来帮助找到罪魁祸首吗?
我曾经将 aar 库作为模块导入,它们工作得完美无缺。我刚刚将 Android Studio 更新为 Arctic Fox,导入 aar 库的选项不再可用。
对我来说,解决办法就是改变
compileOnly files('libs/mylibrary.aar')
在 gradle 中
implementation files('libs/mylibrary.aar')
错误消失了。