小编Sin*_*imi的帖子

无法创建ViewModel类的实例(无法启动活动ComponentInfo)

我在我的项目中使用MVVM,Retrofit,LiveData但我在看到这些链接之前得到了这个错误

错误

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)

这是我的ViewModel,我认为问题出在我的构造函数中

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

6
推荐指数
2
解决办法
1万
查看次数

无法在android中访问我的模块嵌套依赖项

我创建了一个具有类依赖关系的android模块,如下所示:

implementation 'com.squareup.moshi:moshi:1.5.0'
implementation 'com.neovisionaries:nv-websocket-client:2.3'
Run Code Online (Sandbox Code Playgroud)

我将此模块添加到我的项目中.当我想使用它时,它说"无法访问com.neovisionaries.Adapter".

1 - 为什么它无法访问因为我认为我的Async类在后台调用该方法?

2 - 我应该将该依赖项添加到我的项目中吗?

我的模块课程

public class Async extends WebSocketAdapter {
   ....
public Async() {
}

public static Async getInstance(Context context) {
    if (instance == null) {
        sharedPrefs = context.getSharedPreferences(AsyncConstant.Constants.PREFERENCE, Context.MODE_PRIVATE);
        moshi = new Moshi.Builder().build();
        instance = new Async();
    }
    return instance;
}


public void webSocketConnect(String socketServerAddress, final String appId) {
        WebSocketFactory webSocketFactory = new WebSocketFactory();
        webSocketFactory.setVerifyHostname(false);
        setAppId(appId);
        setServerAddress(socketServerAddress);
        try {
            webSocket = webSocketFactory
                    .setConnectionTimeout(TIMEOUT)
                    .createSocket(socketServerAddress)
                    .addListener(this);
            webSocket.connectAsynchronously();
        } catch (IOException e) …
Run Code Online (Sandbox Code Playgroud)

dependencies android module

0
推荐指数
1
解决办法
469
查看次数