I have the following class
import com.android.annotations.NonNullByDefault;
@NonNullByDefault
public final class Log {
...
}
and here is my build.gradle file (some parts omitted)
apply plugin: 'com.android.application'
android {
compileSdkVersion 25
buildToolsVersion '24.0.1'
defaultConfig {
minSdkVersion 16
targetSdkVersion 25
versionCode 2
versionName "0.2"
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_7
targetCompatibility JavaVersion.VERSION_1_7
}
}
dependencies {
compile 'com.android.support:appcompat-v7:25.0.0'
compile 'com.android.support:support-annotations:25.0.0'
compile 'com.android.support:design:25.0.0'
}
In Android Studio there is no warning raised for my class
However when I try to build and run my app I get this error from gradle
Information:Gradle tasks [:app:clean, :app:generateDebugSources, :app:generateDebugAndroidTestSources, :app:mockableAndroidJar, :app:prepareDebugUnitTestDependencies, :app:assembleDebug]
Warning:[options] bootstrap class path not set in conjunction with -source 1.7
/home/puter/git-repos/TaskManager3/app/src/main/java/com/treemetrics/taskmanager3/util/Log.java
Error:(3, 31) error: package com.android.annotations does not exist
Error:(7, 2) error: cannot find symbol class NonNullByDefault
Error:Execution failed for task ':app:compileDebugJavaWithJavac'.
> Compilation failed; see the compiler error output for details.
Information:BUILD FAILED
Information:Total time: 21.021 secs
Information:3 errors
Information:1 warning
Information:See complete output in console
You can find here the official javadoc of the
support-annotations
library.As you can see all the classes are in the same package
android.support.annotation
and notcom.android.annotations
.Also the class
NonNullByDefault
doesn't exist in that package.Open
gradle.properties
and use following code:or U can use these dependencies too:
Annotations come from the
support's library
which are packaged inandroid.support.annotation
.As another option you can use
@NonNull
annotation which denotes that a parameter, field or method return value can never be null.It is imported from
import android.support.annotation.NonNull;
Use implementation
androidx.appcompat:appcompat:1.0.2
in gradle and thenchange
import android.support.annotation.Nullable;
toimport androidx.annotation.NonNull;
in the classes importsIn my case I had to use
instead of
I migrated to AndroidX and forgot to change that.