https://kotlinlang.org logo
#dagger
Title
# dagger
h

Hovhannes

06/24/2021, 1:19 PM
Hello, everybody, I created an app with Hilt DI, but I'm new at DI. The app works well, but when I remove Hilt's annotations, the app works well again. How is possible? Can Hilt work without its annotations.
j

Jeremy

06/25/2021, 9:10 PM
The app will work, you just need to create and inject the dependencies manually
h

Hovhannes

06/28/2021, 7:59 AM
@Jeremy thanks for replying.  I  clicked  clean && rebuild project, clicked invalidate caches , deleted the app and install it again in my phone, removed some annotations, but there is no result, the app works again. Even the app works when I use wrong annotations. 🤔 I use Hilt DI with Java with only this dependency " implementation 'com.google.daggerhilt android2.37' "
j

Jeremy

06/28/2021, 1:59 PM
Did you enable kapt?
Make sure to follow setup instructions incl adding
hilt-compiler
h

Hovhannes

06/29/2021, 1:37 PM
I created an app using Navigation Drawer, Data Binding and Hilt DI. But I get non understandable errors. The errors appeared after using Hilt and the errors depend on Hilt DI.   java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.sportnews/com.example.News.view.activities.MainActivity}: android.view.InflateException: Binary XML file line #16 in com.example.sportnewslayout/activity main Binary XML file line #20 in com.example.sportnewslayout/content main Error inflating class androidx.fragment.app.FragmentContainerView         at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3449)         at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3601)         at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:85)         at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)         at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)         at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2066)         at android.os.Handler.dispatchMessage(Handler.java:106)         at android.os.Looper.loop(Looper.java:223)         at android.app.ActivityThread.main(ActivityThread.java:7656)         at java.lang.reflect.Method.invoke(Native Method)         at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592)         at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947)      Caused by: android.view.InflateException: Binary XML file line #16 in com.example.sportnewslayout/activity main Binary XML file line #20 in com.example.sportnewslayout/content main Error inflating class androidx.fragment.app.FragmentContainerView      Caused by: android.view.InflateException: Binary XML file line #20 in com.example.sportnewslayout/content main Error inflating class androidx.fragment.app.FragmentContainerView      Caused by: androidx.fragment.app.Fragment$InstantiationException: Unable to instantiate fragment com.example.News.view.fragments.HomeFragment: make sure class name exists         at androidx.fragment.app.FragmentFactory.loadFragmentClass(FragmentFactory.java:97)         at androidx.fragment.app.Fragment.instantiate(Fragment.java:611)         at androidx.fragment.app.FragmentContainer.instantiate(FragmentContainer.java:57)         at androidx.fragment.app.FragmentManager$3.instantiate(FragmentManager.java:483)         at androidx.navigation.fragment.FragmentNavigator.instantiateFragment(FragmentNavigator.java:132)         at androidx.navigation.fragment.FragmentNavigator.navigate(FragmentNavigator.java:162)         at androidx.navigation.fragment.FragmentNavigator.navigate(FragmentNavigator.java:58)         at androidx.navigation.NavGraphNavigator.navigate(NavGraphNavigator.java:71)         at androidx.navigation.NavGraphNavigator.navigate(NavGraphNavigator.java:28)         at androidx.navigation.NavController.navigate(NavController.java:1066)         at androidx.navigation.NavController.onGraphCreated(NavController.java:639)         at androidx.navigation.NavController.setGraph(NavController.java:592)         at androidx.navigation.NavController.setGraph(NavController.java:557)         at androidx.navigation.NavController.setGraph(NavController.java:539)         at androidx.navigation.fragment.NavHostFragment.onCreate(NavHostFragment.java:248)         at androidx.fragment.app.Fragment.performCreate(Fragment.java:2949)         at androidx.fragment.app.FragmentStateManager.create(FragmentStateManager.java:475)         at androidx.fragment.app.FragmentStateManager.moveToExpectedState(FragmentStateManager.java:278)         at androidx.fragment.app.FragmentManager.executeOpsTogether(FragmentManager.java:2189)         at androidx.fragment.app.FragmentManager.removeRedundantOperationsAndExecute(FragmentManager.java:2106)         at androidx.fragment.app.FragmentManager.execSingleAction(FragmentManager.java:1971)         at androidx.fragment.app.BackStackRecord.commitNowAllowingStateLoss(BackStackRecord.java:311)         at androidx.fragment.app.FragmentContainerView.<init>(FragmentContainerView.java:180)         at androidx.fragment.app.FragmentLayoutInflaterFactory.onCreateView(FragmentLayoutInflaterFactory.java:52) 2021-06-29 170640.696 19407-19407/com.example.sportnews E/AndroidRuntime:    at androidx.fragment.app.FragmentController.onCreateView(FragmentController.java:135)         at androidx.fragment.app.FragmentActivity.dispatchFragmentsOnCreateView(FragmentActivity.java:319)         at androidx.fragment.app.FragmentActivity.onCreateView(FragmentActivity.java:298)         at android.view.LayoutInflater.tryCreateView(LayoutInflater.java:1067)         at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:995)         at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:959)         at android.view.LayoutInflater.rInflate(LayoutInflater.java:1121)         at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:1082)         at android.view.LayoutInflater.parseInclude(LayoutInflater.java:1261)         at android.view.LayoutInflater.rInflate(LayoutInflater.java:1117)         at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:1082)         at android.view.LayoutInflater.parseInclude(LayoutInflater.java:1261)         at android.view.LayoutInflater.rInflate(LayoutInflater.java:1117)         at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:1082)         at android.view.LayoutInflater.inflate(LayoutInflater.java:680)         at android.view.LayoutInflater.inflate(LayoutInflater.java:532)         at android.view.LayoutInflater.inflate(LayoutInflater.java:479)         at androidx.appcompat.app.AppCompatDelegateImpl.setContentView(AppCompatDelegateImpl.java:699)         at androidx.appcompat.app.AppCompatActivity.setContentView(AppCompatActivity.java:195)         at androidx.databinding.DataBindingUtil.setContentView(DataBindingUtil.java:303)         at androidx.databinding.DataBindingUtil.setContentView(DataBindingUtil.java:284)         at com.example.News.view.activities.MainActivity.onCreate(MainActivity.java:45)         at android.app.Activity.performCreate(Activity.java:8000)         at android.app.Activity.performCreate(Activity.java:7984)         at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1309)         at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3422)         at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3601)         at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:85)         at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)         at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)         at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2066)         at android.os.Handler.dispatchMessage(Handler.java:106)         at android.os.Looper.loop(Looper.java:223)         at android.app.ActivityThread.main(ActivityThread.java:7656)         at java.lang.reflect.Method.invoke(Native Method)         at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592)         at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947)      Caused by: java.lang.ClassNotFoundException: com.example.News.view.fragments.HomeFragment         at java.lang.Class.classForName(Native Method)         at java.lang.Class.forName(Class.java:454)         at androidx.fragment.app.FragmentFactory.loadClass(FragmentFactory.java:53)         at androidx.fragment.app.FragmentFactory.loadFragmentClass(FragmentFactory.java:94)          ... 60 more      Caused by: java.lang.ClassNotFoundException: com.example.News.view.fragments.HomeFragment         at java.lang.VMClassLoader.findLoadedClass(Native Method)         at java.lang.ClassLoader.findLoadedClass(ClassLoader.java:738)         at java.lang.ClassLoader.loadClass(ClassLoader.java:363)         at java.lang.ClassLoader.loadClass(ClassLoader.java:312)          ... 64 more      Caused by: java.lang.NoClassDefFoundError: Failed resolution of: Lcom/example/News/view/fragments/Hilt_HomeFragment;          ... 64 more      Caused by: java.lang.ClassNotFoundException: Didn't find class "com.example.News.view.fragments.Hilt_HomeFragment" on path: DexPathList[[zip file "/data/app/~~0Qh9NhCSypsoQxex8VYNlw==/com.example.sportnews-ZZR6VXexdigkid6Svjme1g==/base.apk"],nativeLibraryDirectories=[/data/app/~~0Qh9NhCSypsoQxex8VYNlw==/com.example.sportnews-ZZR6VXexdigkid6Svjme1g==/lib/x86, /system/lib, /system_ext/lib]] 2021-06-29 170640.696 19407-19407/com.example.sportnews E/AndroidRuntime:    at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:207)         at java.lang.ClassLoader.loadClass(ClassLoader.java:379)         at java.lang.ClassLoader.loadClass(ClassLoader.java:312)          ... 64 more (edited)
j

Jeremy

06/29/2021, 6:49 PM
Looks like your xml is specifying the fragment which is resulting in
Caused by: java.lang.ClassNotFoundException: com.example.News.view.fragments.HomeFragment
You should avoid the
fragment
tag and setup fragments in code
81 Views