How to solve NoClassDefFoundError: Apache Commons Lang Android
How to solve NoClassDefFoundError: Apache Commons Lang Android
我在尝试使用 DateUtils.addMinutes()
:
时收到此异常
E/AndroidRuntime: FATAL EXCEPTION: AsyncTask #1
Process: com.example.apprainha, PID: 7742
java.lang.RuntimeException: An error occured while executing doInBackground()
at android.os.AsyncTask.done(AsyncTask.java:304)
at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:355)
at java.util.concurrent.FutureTask.setException(FutureTask.java:222)
at java.util.concurrent.FutureTask.run(FutureTask.java:242)
at android.os.AsyncTask$SerialExecutor.run(AsyncTask.java:231)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
at java.lang.Thread.run(Thread.java:818)
Caused by: java.lang.NoClassDefFoundError: org.apache.commons.lang3.-$$Lambda$Validate$XJJZURDO20sZXXyZMfTRRv13t2c
at org.apache.commons.lang3.Validate.notNull(Validate.java:225)
at org.apache.commons.lang3.time.DateUtils.validateDateNotNull(DateUtils.java:1789)
at org.apache.commons.lang3.time.DateUtils.add(DateUtils.java:515)
at org.apache.commons.lang3.time.DateUtils.addMinutes(DateUtils.java:472)
at com.example.apprainha.threads.ExportaDados.exportCSVs(ExportaDados.java:187)
at com.example.apprainha.threads.ExportaDados.doInBackground(ExportaDados.java:60)
at com.example.apprainha.threads.ExportaDados.doInBackground(ExportaDados.java:33)
at android.os.AsyncTask.call(AsyncTask.java:292)
at java.util.concurrent.FutureTask.run(FutureTask.java:237)
at android.os.AsyncTask$SerialExecutor.run(AsyncTask.java:231)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
at java.lang.Thread.run(Thread.java:818)
我的代码正在调用 DateUtils.addminutes()
以向变量 date
添加 1 分钟,如下所示:
Date target = DateUtils.addminutes(date, 1);
我将正确的依赖项放在 Gradle 文件中:
implementation 'org.apache.commons:commons-lang3:3.11'
我对这个错误进行了很多研究,none 其他帖子中提到的解决方案解决了我的问题。我该如何解决?
将您的成绩文件更改为:
implementation 'org.apache.commons:commons-lang3:3.6'
然后您可以在 类:
中使用此导入
import org.apache.commons.lang3.StringUtils;
我在尝试使用 DateUtils.addMinutes()
:
E/AndroidRuntime: FATAL EXCEPTION: AsyncTask #1
Process: com.example.apprainha, PID: 7742
java.lang.RuntimeException: An error occured while executing doInBackground()
at android.os.AsyncTask.done(AsyncTask.java:304)
at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:355)
at java.util.concurrent.FutureTask.setException(FutureTask.java:222)
at java.util.concurrent.FutureTask.run(FutureTask.java:242)
at android.os.AsyncTask$SerialExecutor.run(AsyncTask.java:231)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
at java.lang.Thread.run(Thread.java:818)
Caused by: java.lang.NoClassDefFoundError: org.apache.commons.lang3.-$$Lambda$Validate$XJJZURDO20sZXXyZMfTRRv13t2c
at org.apache.commons.lang3.Validate.notNull(Validate.java:225)
at org.apache.commons.lang3.time.DateUtils.validateDateNotNull(DateUtils.java:1789)
at org.apache.commons.lang3.time.DateUtils.add(DateUtils.java:515)
at org.apache.commons.lang3.time.DateUtils.addMinutes(DateUtils.java:472)
at com.example.apprainha.threads.ExportaDados.exportCSVs(ExportaDados.java:187)
at com.example.apprainha.threads.ExportaDados.doInBackground(ExportaDados.java:60)
at com.example.apprainha.threads.ExportaDados.doInBackground(ExportaDados.java:33)
at android.os.AsyncTask.call(AsyncTask.java:292)
at java.util.concurrent.FutureTask.run(FutureTask.java:237)
at android.os.AsyncTask$SerialExecutor.run(AsyncTask.java:231)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
at java.lang.Thread.run(Thread.java:818)
我的代码正在调用 DateUtils.addminutes()
以向变量 date
添加 1 分钟,如下所示:
Date target = DateUtils.addminutes(date, 1);
我将正确的依赖项放在 Gradle 文件中:
implementation 'org.apache.commons:commons-lang3:3.11'
我对这个错误进行了很多研究,none 其他帖子中提到的解决方案解决了我的问题。我该如何解决?
将您的成绩文件更改为:
implementation 'org.apache.commons:commons-lang3:3.6'
然后您可以在 类:
中使用此导入import org.apache.commons.lang3.StringUtils;