Java 获取IllegalArgumentException Null。启动后,当我单击“注册”按钮时崩溃
MainActivity.java代码 主活动加载启动动画,然后启动到登录屏幕,该屏幕显示 一个登录按钮和一个注册按钮,用于设置注册屏幕的动画。但当我点击“注册”按钮时,应用程序重新启动,然后崩溃Java 获取IllegalArgumentException Null。启动后,当我单击“注册”按钮时崩溃,java,android,Java,Android,MainActivity.java代码 主活动加载启动动画,然后启动到登录屏幕,该屏幕显示 一个登录按钮和一个注册按钮,用于设置注册屏幕的动画。但当我点击“注册”按钮时,应用程序重新启动,然后崩溃 public void run() { //Call next screen Intent intent = new Intent(MainActivity.this, Login.class); // Att
public void run() {
//Call next screen
Intent intent = new Intent(MainActivity.this, Login.class);
// Attach all the elements those you want to animate in design
Pair[] pairs = new Pair[2];
pairs[0] = new Pair<View, String>(image, "logo_image");
pairs[1] = new Pair<View, String>(logo, "logo_text");
//wrap the call in API level 21 or higher
if(android.os.Build.VERSION.SDK_INT>=android.os.Build.VERSION_CODES.LOLLIPOP)
{
ActivityOptions options = ActivityOptions.makeSceneTransitionAnimation(MainActivity.this, pairs);
startActivity(intent, options.toBundle());
}
}, SPLASH_SCREEN);
有人知道这种行为的原因吗?stacktrace对此有任何建议的修复吗?:
共享元素不能为空
您的
视图
中有一个是null
,不能是。。。检查您的对
列表,并确保在打开的活动
共享元素中有一对/相同的视图
,共享元素不能为null=>它看起来像是null。找出哪一个,并确保它是实例化的这是一个挑战。我如何找出空值?通过阅读issuethanks的stacktrace以获得您的帮助。在继续运行stacktrace和调试后,发现它卡在ActivityOptions=ActivityOptions.MakeScenetTransitionAnimation(Login.this,pairs);。不得不说出来“不得不说出来”。。。这很少(如果不是永远)是一个好的解决方案。您正在做的是更改预期的功能。相反,你应该找出哪个组件是空的,检查它为什么没有实例化,并在使用它之前实例化它。几乎所有的东西看起来都很好,但仍然有相同的问题。在完成整个对
数组putfir
循环后,使用Log.d()
打印所有输入的对
s。在调用super.onPause()
或在其他活动
生命周期方法之前,您可能会在onPause
中查看一些视图
?
Pair[] pairs = new Pair[7];
pairs[0] = new Pair<View, String>(image, "logo_image");
pairs[1] = new Pair<View, String>(logoText, "logo_text");
pairs[2] = new Pair<View, String>(sloganText, "logo_desc");
pairs[3] = new Pair<View, String>(username, "username_tran");
pairs[4] = new Pair<View, String>(password, "password_tran");
pairs[5] = new Pair<View, String>(login_btn, "button_tran");
pairs[6] = new Pair<View, String>(callSignUp, "login_signup_tran");
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.LOLLIPOP)
{
ActivityOptions options = ActivityOptions.makeSceneTransitionAnimation(Login.this, pairs);
startActivity(intent, options.toBundle());
}
java.lang.IllegalArgumentException: Shared element must not be null
at android.app.ActivityOptions.makeSceneTransitionAnimation(ActivityOptions.java:833)
at android.app.ActivityOptions.makeSceneTransitionAnimation(ActivityOptions.java:753)
at com.chijid1.medlabtuts.Login$1.onClick(Login.java:58)
at android.view.View.performClick(View.java:7161)
at android.view.View.performClickInternal(View.java:7138)
at android.view.View.access$3500(View.java:811)
at android.view.View$PerformClick.run(View.java:27419)
at android.os.Handler.handleCallback(Handler.java:883)
at android.os.Handler.dispatchMessage(Handler.java:100)
at android.os.Looper.loop(Looper.java:221)
at android.app.ActivityThread.main(ActivityThread.java:7520)
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)