在Android Studio中,当您在"项目结构"窗口中选择模块时,在"属性"选项卡下,可以选择将"增量Dex"设置为true或false.它究竟做了什么,何时应该使用它?
我在我的类上添加注入后得到这个错误然后它给了我一个编译错误.如果我删除
@Inject static ApiService mApiService;
Run Code Online (Sandbox Code Playgroud)
它工作正常
我正在使用2个应用程序类扩展MultidexApplication因为我有合并2应用程序首先使用dagger2而第二个应用程序是butterknife并且两个目录结构都是不同的并且两个应用程序相互依赖正常工作但合并后代码应用程序无法编译并给出DaggerAppComponent错误!
请帮我们解决我的疑问
我遵循以下结构
@ActivityScope
@Component(dependencies = AppComponent.class)
public interface ActivityComponent extends AppComponent {
void inject(SignInActivity activity);
}
Run Code Online (Sandbox Code Playgroud)
@Singleton
@Component(modules = {ApplicationModule.class, ApiModule.class})
public interface AppComponent {
Context appContext();
Config config();
ApiService apiService();
}
Run Code Online (Sandbox Code Playgroud)
@Module
public class ActivityModule {
private final Activity mActivity;
public ActivityModule(Activity activity){
mActivity = activity;
}
@Provides
public Context activityContext(){
return mActivity;
}
}
Run Code Online (Sandbox Code Playgroud)
@Module
public class ApiModule {
@Provides
@Singleton
public ApiService apiService(){
OkHttpClient client = new OkHttpClient().newBuilder()
.connectTimeout(10, TimeUnit.SECONDS) …Run Code Online (Sandbox Code Playgroud) java.lang.RuntimeException:
Unable to start activity ComponentInfo{ir.orangehat.movieinfo/ir.orangehat.movieinfo.application.home.HomeActivity}: java.lang.RuntimeException:
Cannot create an instance of class ir.orangehat.movieinfo.application.home.HomeViewModel
Run Code Online (Sandbox Code Playgroud)
public class HomeViewModel extends AndroidViewModel {
private MovieRepository movieRepository;
public HomeViewModel(@NonNull Application application, Context context, LifecycleOwner lifecycleOwner) {
super(application);
movieRepository = new MovieRepository(lifecycleOwner, context);
}
LiveData<List<Movie>> getMovies() {
return movieRepository.getMovies();
}}
Run Code Online (Sandbox Code Playgroud)
public class MovieRepository extends BaseRepository {
private LifecycleOwner lifecycleOwner;
private MovieApi movieApi;
private MovieDatabaseHelper movieDatabaseHelper;
public MovieRepository(LifecycleOwner lifecycleOwner, Context context) {
this.lifecycleOwner = lifecycleOwner;
movieApi = getRetrofitHelper().getService(MovieApi.class);
movieDatabaseHelper = …Run Code Online (Sandbox Code Playgroud) android mvvm android-viewmodel android-architecture-components