java.lang.IollegalArgumentException:指定为非null的参数为null:方法kotli



i正在使用进度按钮库https://github.com/leandroBorgesFerreira/LoadingButtonAndroid对于loginbutton,当我试图通过点击firebase中的这个按钮来创建用户时,我得到了以下错误

我在这里发现了同样的错误java.lang.IllegalArgumentException:指定为非null的参数为null:方法kotlin.jvm.internal.Intrinsics.checkParameterIsNotNull,但我无法获得它

java.lang.IllegalArgumentException: Parameter specified as non-null is null: method kotlin.jvm.internal.Intrinsics.checkParameterIsNotNull, parameter bitmap
at br.com.simplepass.loadingbutton.customViews.CircularProgressButton.doneLoadingAnimation(Unknown Source:2)
at com.choudhary.apnidukan.LoginActivity$1$1.onComplete(LoginActivity.java:82)

我的登录活动

public class LoginActivity extends AppCompatActivity {

EditText email, password, confirmpassword;
FirebaseAuth firebaseAuth;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_login);
firebaseAuth = FirebaseAuth.getInstance();

final CircularProgressButton btn = (CircularProgressButton) findViewById(R.id.btn_id);
email = findViewById(R.id.edit_text_email);
password = findViewById(R.id.edit_text_password);
confirmpassword = findViewById(R.id.edit_confirmPassword);

btn.setOnClickListener(new View.OnClickListener() {

@Override
public void onClick(View view) {
if (TextUtils.isEmpty(email.getText().toString())) {
email.setError("Email is must");
return;
}
if (TextUtils.isEmpty(password.getText().toString())) {
password.setError("Password is must");
return;
}
if (TextUtils.isEmpty(confirmpassword.getText().toString())) {
confirmpassword.setError("Password not Matched");
return;
}
if (!password.getText().toString().trim().equals(confirmpassword.getText().toString().trim())) {
confirmpassword.setError("Password not matched");
return;
}
String EMAIL = email.getText().toString();
String PASSWORD = password.getText().toString();
btn.startAnimation();
final Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.ic_baseline_check_24);
firebaseAuth.createUserWithEmailAndPassword(EMAIL, PASSWORD).addOnCompleteListener(new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
if (task.isSuccessful()) {
btn.doneLoadingAnimation(R.color.colorPrimaryDark, bitmap);
Intent in = new Intent(LoginActivity.this, mainDrawerActivity.class);
startActivity(in);
finish();
} else {
btn.revertAnimation();
Toast.makeText(LoginActivity.this, task.getException().getLocalizedMessage(), Toast.LENGTH_SHORT).show();
btn.stopAnimation();
}
}
});

}
});

}

}

返回的位图final Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.ic_baseline_check_24);。这就是为什么btn.doneLoadingAnimation(R.color.colorPrimaryDark, bitmap);出现错误的原因。要从drawable中获得正确的bitmap,可以使用以下方法。类似:

public static Bitmap drawableToBitmap (Drawable drawable) {
Bitmap bitmap = null;
if (drawable instanceof BitmapDrawable) {
BitmapDrawable bitmapDrawable = (BitmapDrawable) drawable;
if(bitmapDrawable.getBitmap() != null) {
return bitmapDrawable.getBitmap();
}
}
if(drawable.getIntrinsicWidth() <= 0 || drawable.getIntrinsicHeight() <= 0) {
bitmap = Bitmap.createBitmap(1, 1, Bitmap.Config.ARGB_8888); // Single color bitmap will be created of 1x1 pixel
} else {
bitmap = Bitmap.createBitmap(drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight(), Bitmap.Config.ARGB_8888);
}
Canvas canvas = new Canvas(bitmap);
drawable.setBounds(0, 0, canvas.getWidth(), canvas.getHeight());
drawable.draw(canvas);
return bitmap;
}

并在firebase回调方法中调用上述方法。类似:

firebaseAuth.createUserWithEmailAndPassword(EMAIL, PASSWORD).addOnCompleteListener(new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
if (task.isSuccessful()) {
// Create Bitmap here------------------
Bitmap bitmap = drawableToBitmap(getResources().getDrawable(R.drawable.ic_baseline_check_24));
btn.doneLoadingAnimation(R.color.colorPrimaryDark, bitmap);
Intent in = new Intent(LoginActivity.this, mainDrawerActivity.class);
startActivity(in);
finish();
} else {
btn.revertAnimation();
Toast.makeText(LoginActivity.this, task.getException().getLocalizedMessage(), Toast.LENGTH_SHORT).show();
btn.stopAnimation();
}
}
});

最新更新