groovy
buildscript {
repositories {
google()
gradlePluginPortal()
}
dependencies {
classpath 'com.android.tools.build:gradle:4.2.2'
classpath 'com.google.dagger:hilt-android-gradle-plugin:2.38.1'
}
}
allprojects {
repositories {
google()
jcenter()
}
}
groovy
apply plugin: 'com.android.library'
apply plugin: 'dagger.hilt.android.plugin'
android {
compileSdkVersion 31
defaultConfig {
javaCompileOptions {
annotationProcessorOptions {
arguments += ["dagger.hilt.android.plugin.lifecycle.disableAndroidxConstraintLayout": "true"]
}
}
}
}
dependencies {
implementation 'androidx.hilt:hilt-common:1.0.0'
annotationProcessor 'androidx.hilt:hilt-compiler:1.0.0'
}
public class MyDependency {
public void doSomething() {
System.out.println("Performing operation using MyDependency.");
}
}
public class MyClass {
private final MyDependency myDependency;
@Inject
public MyClass(MyDependency myDependency) {
this.myDependency = myDependency;
}
public void performOperation() {
myDependency.doSomething();
System.out.println("Performing operation using MyClass.");
}
}
@Module
@InstallIn(SingletonComponent.class)
public abstract class LibraryModule {
@Provides
public static MyDependency provideMyDependency() {
return new MyDependency();
}
}
@AndroidEntryPoint
public class MainActivity extends AppCompatActivity {
@Inject
MyClass myClass;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
myClass.performOperation();
}
}