I tried everything, but the error not getting solved
Here is my code:
public String[] getWeekDays() {
LocalDate today = LocalDate.now();
Loc
NoClassDefFoundError-Thrown if the Java Virtual Machine or a ClassLoader instance tries to load in the definition of a class (as part of a normal method call or as part of creating a new instance using the new expression) and no definition of the class could be found.
LocalDate today = LocalDate.now(); // Added 1.8
Read LocalDate
Make sure, You added this in your build.gradle
section.
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
FYI
java.time
package was added only in API 26.
So, You should set
minSdkVersion 26
After that, Clean-Rebuild-Gradle
.
You are trying to run your app on a device (or simulator) with an API level below 26. LocalDate
and the rest of java.time were introduced in level 26. However, there is a backport that allows you to use the most used 80 % of it on earlier Android versions. I suggest that this is a good solution for you.
So add the ThreeTenABP library to your project. And make sure you import org.threeten.bp.LocalDate
and org.threeten.bp.DayOfWeek
rather than the versions from java.time
. Then you should be fine.
I was once told that dependencies is (I didn’t test):
compile group: 'org.threeten', name: 'threetenbp', version: '1.3.3', classifier: 'no-tzdb'
As an aside your code may be written as:
LocalDate today = LocalDate.now(ZoneId.of("America/Tortola"));
LocalDate monday = today.with(TemporalAdjusters.nextOrSame(DayOfWeek.MONDAY));
LocalDate tue = today.with(TemporalAdjusters.nextOrSame(DayOfWeek.TUESDAY));
LocalDate wed = today.with(TemporalAdjusters.nextOrSame(DayOfWeek.WEDNESDAY));
LocalDate thur = today.with(TemporalAdjusters.nextOrSame(DayOfWeek.THURSDAY));
LocalDate fri = today.with(TemporalAdjusters.nextOrSame(DayOfWeek.FRIDAY));
LocalDate sat = today.with(TemporalAdjusters.nextOrSame(DayOfWeek.SATURDAY));
LocalDate sunday = today.with(TemporalAdjusters.nextOrSame(DayOfWeek.SUNDAY));
I have used the following imports:
import org.threeten.bp.DayOfWeek;
import org.threeten.bp.LocalDate;
import org.threeten.bp.ZoneId;
import org.threeten.bp.temporal.TemporalAdjusters;
java.time
was first described.java.time
to Java 6 and 7 (ThreeTen for JSR-310).Thrown if the Java Virtual Machine or a ClassLoader instance tries to load in the definition of a class (as part of a normal method call or as part of creating a new instance using the new expression) and no definition of the class could be found. The searched-for class definition existed when the currently executing class was compiled, but the definition can no longer be found.