java.lang.IllegalArgumentException:指定为非null的参数为null:method kotlin.jvm.internal.Intrinsics.checkParametersNotNull
我正在为loginbutton使用一个进度按钮库,当我试图通过在firebase中单击此按钮来创建用户时,我得到以下错误 我在这里发现了同样的错误,但我无法得到它java.lang.IllegalArgumentException:指定为非null的参数为null:method kotlin.jvm.internal.Intrinsics.checkParametersNotNull,java,android,android-studio,Java,Android,Android Studio,我正在为loginbutton使用一个进度按钮库,当我试图通过在firebase中单击此按钮来创建用户时,我得到以下错误 我在这里发现了同样的错误,但我无法得到它 java.lang.IllegalArgumentException: Parameter specified as non-null is null: method kotlin.jvm.internal.Intrinsics.checkParameterIsNotNull, parameter bitmap at b
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();
}
}
});
}
});
}
公共类LoginActivity扩展了AppCompatActivity{
编辑文本电子邮件、密码、确认密码;
FirebaseAuth FirebaseAuth;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity\u登录);
firebaseAuth=firebaseAuth.getInstance();
最终CircularProgressButton btn=(CircularProgressButton)findViewById(R.id.btn\U id);
email=findviewbyd(R.id.edit\u text\u email);
password=findviewbyd(R.id.edit\u text\u password);
confirmpassword=findviewbyd(R.id.edit\u confirmpassword);
btn.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图){
if(TextUtils.isEmpty(email.getText().toString())){
email.setError(“必须发送电子邮件”);
返回;
}
if(TextUtils.isEmpty(password.getText().toString())){
密码设置错误(“密码是必须的”);
返回;
}
if(TextUtils.isEmpty(confirmpassword.getText().toString()){
confirmpassword.setError(“密码不匹配”);
返回;
}
如果(!password.getText().toString().trim().equals(confirmpassword.getText().toString().trim())){
confirmpassword.setError(“密码不匹配”);
返回;
}
字符串EMAIL=EMAIL.getText().toString();
字符串密码=PASSWORD.getText().toString();
btn.startAnimation();
最终位图位图=BitmapFactory.decodeResource(getResources(),R.drawable.ic\u基线检查\u 24);
firebaseAuth.createUserWithEmailAndPassword(电子邮件,密码).addOnCompleteListener(新OnCompleteListener(){
@凌驾
未完成的公共void(@NonNull任务){
if(task.issusccessful()){
btn.Doneloadinganization(R.color.colorPrimaryDark,位图);
Intent in=新的Intent(LoginActivity.this、mainDrawerActivity.class);
星触觉(in);
完成();
}否则{
btn.revertAnimation();
Toast.makeText(LoginActivity.this,task.getException().getLocalizedMessage(),Toast.LENGTH_SHORT).show();
btn.stopAnimation();
}
}
});
}
});
}
}在
最终位图位图=BitmapFactory.decodeResource(getResources(),R.drawable.ic\u baseline\u check\u 24)处返回的位图为null代码>。这就是为什么在btn.doneloadinganization(R.color.colorPrimaryDark,位图)中出现错误的原因代码>。要从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;
}
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();
}
}
});
公共静态位图drawableToBitmap(DrawableDrawable){
位图=空;
if(BitmapDrawable的可绘制实例){
BitmapDrawable BitmapDrawable=(BitmapDrawable)drawable;
if(bitmapDrawable.getBitmap()!=null){
返回bitmapDrawable.getBitmap();
}
}
如果(drawable.getIntrinsicWidth(),则对decodeResource的调用返回null。这导致您将null传递给DoneloadingOrganization,这是一个错误。如果尝试加载位图时出错,该函数将返回null。