- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我几乎在整个互联网上搜索了我的问题,但找不到我需要的答案。
是的。我的问题不是唯一的,但没有答案,这可以帮助我。
所以我决定自己问。
现在关于问题:
public class AuthActivityViewModel extends AndroidViewModel {
Repository repository;
private LiveData<List<User>> users;
private LiveData<User> user;
public AuthActivityViewModel(@NonNull Application application) {
super(application);
repository = new Repository(application);
}
public LiveData<List<User>> getUsers() {
users = repository.getUsers();
return users;
}
public LiveData<User> getUser(int userId) {
user = repository.getUser(userId);
return user;
}
public void addNewUser(User user) {
repository.insertUser(user);
}
public void updateUser(User user) {
repository.updateUser(user);
}
public void deleteUser(User user) {
repository.deleteUser(user);
}
}
..................................................
public class AuthActivity extends AppCompatActivity implements AuthInteractionListener {
private FragmentManager fragmentManager;
private final ConnectionBroadcastReceiver connectionBroadcastReceiver = new ConnectionBroadcastReceiver();
private int limitOfOnWindowFocusChangedOperationForAuthActivity = 0;
private boolean isActivityRecreated;
AuthActivityViewModel authActivityViewModel;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_auth);
isActivityRecreated = true;
IntentFilter connectionIntentFilter = new IntentFilter(ConnectivityManager.CONNECTIVITY_ACTION);
registerReceiver(connectionBroadcastReceiver, connectionIntentFilter);
authActivityViewModel = new ViewModelProvider(this).get(AuthActivityViewModel.class);
}
...
}
......
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.android.findthepikachuupgradeversion2/com.example.android.findthepikachuupgradeversion3.view.AuthActivity}: java.lang.RuntimeException: Cannot create an instance of class com.example.android.findthepikachuupgradeversion3.viewmodel.AuthActivityViewModel
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3307)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3446)
at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:83)
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:2043)
at android.os.Handler.dispatchMessage(Handler.java:107)
at android.os.Looper.loop(Looper.java:224)
at android.app.ActivityThread.main(ActivityThread.java:7548)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:539)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:950)
Caused by: java.lang.RuntimeException: Cannot create an instance of class com.example.android.findthepikachuupgradeversion3.viewmodel.AuthActivityViewModel
at androidx.lifecycle.ViewModelProvider$NewInstanceFactory.create(ViewModelProvider.java:221)
at androidx.lifecycle.ViewModelProvider.get(ViewModelProvider.java:187)
at androidx.lifecycle.ViewModelProvider.get(ViewModelProvider.java:150)
at com.example.android.findthepikachuupgradeversion3.view.AuthActivity.onCreate(AuthActivity.java:44)
at android.app.Activity.performCreate(Activity.java:7893)
at android.app.Activity.performCreate(Activity.java:7880)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1307)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3282)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3446)
at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:83)
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:2043)
at android.os.Handler.dispatchMessage(Handler.java:107)
at android.os.Looper.loop(Looper.java:224)
at android.app.ActivityThread.main(ActivityThread.java:7548)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:539)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:950)
Caused by: java.lang.InstantiationException: java.lang.Class<com.example.android.findthepikachuupgradeversion3.viewmodel.AuthActivityViewModel> has no zero argument constructor
at java.lang.Class.newInstance(Native Method)
at androidx.lifecycle.ViewModelProvider$NewInstanceFactory.create(ViewModelProvider.java:219)
at androidx.lifecycle.ViewModelProvider.get(ViewModelProvider.java:187)
at androidx.lifecycle.ViewModelProvider.get(ViewModelProvider.java:150)
at com.example.android.findthepikachuupgradeversion3.view.AuthActivity.onCreate(AuthActivity.java:44)
at android.app.Activity.performCreate(Activity.java:7893)
at android.app.Activity.performCreate(Activity.java:7880)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1307)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3282)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3446)
at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:83)
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:2043)
at android.os.Handler.dispatchMessage(Handler.java:107)
at android.os.Looper.loop(Looper.java:224)
at android.app.ActivityThread.main(ActivityThread.java:7548)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:539)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:950)
There is no default constructor available inandroidx.lifecycle.AndroidViewModel
def lifecycle_version = "2.2.0"implementation "androidx.lifecycle:lifecycle-viewmodel:$lifecycle_version"
implementation "androidx.lifecycle:lifecycle-livedata:$lifecycle_version"
annotationProcessor "androidx.lifecycle:lifecycle-compiler:$lifecycle_version"
def room_version = "2.2.5"
implementation "androidx.room:room-runtime:$room_version"
annotationProcessor "androidx.room:room-compiler:$room_version"
最佳答案
将以下依赖项添加到 gradle app 模块级别。 implementation 'androidx.lifecycle:lifecycle-extensions:$lifecycle_version
扩展包括许多库,包括 LiveData
, 所以,通过添加它,你可以摆脱:implementation 'androidx.lifecycle:lifecycle-livedata:$lifecycle_version
But it appears lifecycle-extensions has been deprecated. Is thereanother dependency that solves this issue?
lifecycle-extensions Artifact Deprecation: With the above deprecationof ViewModelProviders.of(), this release marks the deprecation of thelast API in lifecycle-extensions and this artifact should now beconsidered deprecated in its entirety. We strongly recommend dependingon the specific Lifecycle artifacts you need (such aslifecycle-service if you’re using LifecycleService andlifecycle-process if you’re using ProcessLifecycleOwner) rather thanlifecycle-extensions as there will not be a future 2.3.0 release oflifecycle-extensions.
implementation "android.arch.lifecycle:runtime:$lifecycle_version
并保留您的其他生命周期依赖项工件。
关于java - AndroidViewModel 没有零参数构造函数。如何解决这个问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64834877/
我目前正在挖掘 Android Room with a View示例应用程序,提供完整源代码 here .在这个项目中,一个 WordViewModel 类型 AndroidViewModel被定义为
我的问题与 ViewModel second time returns null 有关其中,如果我重复调用服务器,我不会在 observe 函数中得到回调。以下是我正在使用的代码 - @Singlet
documentation声明如下: If the ViewModel needs the Application context, for example to find a system serv
我正在使用 AndroidViewModel与 LiveData将 Intent 发送到 IntentService并从 EventBus 接收事件。我需要 Intent 和 EventBus 的应用
这个问题在这里已经有了答案: AndroidViewModel instantiated without passing application context? (2 个回答) 1年前关闭。 我正在
我想使用 AndroidViewModel对于我的 View 模型,以便访问 Context .它需要 Application作为参数传递。我的 ViewModel 类如下所示: class FooA
随着 Android 架构组件库的引入,引入了几个新类,包括 AndroidViewModel 和 ViewModel。但是,我无法弄清楚这两个类之间的区别。 documentation简明扼要地描述
我几乎在整个互联网上搜索了我的问题,但找不到我需要的答案。 是的。我的问题不是唯一的,但没有答案,这可以帮助我。 所以我决定自己问。 现在关于问题: public class AuthActivity
我需要使用 AndroidViewModel带有应用程序上下文和 SavedStateHandle .我已经将它与应用程序上下文一起使用,但我无法添加 SavedStateHandle给它。 这就是我
我正在尝试在应用程序中实现架构组件,但在创建 androidViewModel 实例时遇到了问题。请帮我解决这个问题。 我在这里尝试创建 LoginViewModel 类的实例,但出现以下错误 错误
我想为通过进行改造调用来执行注册的方法编写单元测试,并且该方法位于 AndroidViewModel 类中。如何测试该方法? public class SignUpViewModel extends
我的 ViewModel 类是用 Java 编写的,我的 Activity 类是用 Kotlin 编写的。我收到错误 09-18 14:01:32.737 14082-14082/com.meme.a
我正在为我的应用程序编写单元测试,并且在编写它们时发现了一个“减速带”。在测试 AndroidViewModel 的子类时,我缺少用于初始化的 Application 参数。我已经读过 this qu
这个问题在这里已经有了答案: AndroidViewModel vs ViewModel (3 个回答) 4年前关闭。 对于任何有这个问题的人, 根据 Android 文档, Since the Vi
我目前正在调查 Dagger2 的使用情况在我的 Android 应用程序中。 implementation 'com.google.dagger:dagger:2.21' annotationPro
我说很奇怪,因为我不明白有人可能会告诉我什么正在按预期工作。 我有一个带有 LiveData 成员的 AndroidViewModel,我在 MainActivity 中观察到这些成员来切换一些代码功
有人为 Fragment 编写了两个扩展函数(代码 A2)和 FragmentActivity实例化一个 ViewModel ,效果很好,可以看到 Code A1 和 Code A3。 我希望为 Fr
你知道这个图书馆吗? https://github.com/inloop/AndroidViewModel为什么命名为ViewModel?我认为这就是MVP模式。 最佳答案 我是作者之一。这只是一个命
我正在寻找一种方法来初始化 ViewModel 中的 LiveData 对象。当前仅在从 Activity 调用 setQuery 方法时才初始化项目。 public class MyListView
AndroidViewModel 用于访问 Application 上下文。我正在尝试访问 Activity 的 FragmentManager 而不显式传递它: class FooViewModel
我是一名优秀的程序员,十分优秀!