什么错误尝试在空对象引用上调用虚拟方法'java.lang.String android.content.Context.getPackageName()'[重复]

Posted

技术标签:

【中文标题】什么错误尝试在空对象引用上调用虚拟方法\'java.lang.String android.content.Context.getPackageName()\'[重复]【英文标题】:what Error Attempt to invoke virtual method 'java.lang.String android.content.Context.getPackageName()' on a null object reference [duplicate]什么错误尝试在空对象引用上调用虚拟方法'java.lang.String android.content.Context.getPackageName()'[重复] 【发布时间】:2021-07-01 05:30:05 【问题描述】:

当我使用回收器适配器时,不会显示任何错误,但是当我使用回收器选项时,当我搜索时会显示错误,然后结果将显示片段使用。

//code
 @Override
protected void onBindViewHolder(@NonNull myViewHolder holder, int i, @NonNull Itemmodel itemmodel) 
    String quantity=itemmodel.getPquantityet();
    String id=itemmodel.getProductid();
    String priceavailable=itemmodel.getPriceavailable();
    holder.titletv.setText(itemmodel.getProductname());
    holder.descriptiontv.setText(itemmodel.getPdescription());
    holder.quantitytv.setText(quantity);
    holder.pricetv.setText(itemmodel.getPprice());
   /*        if(priceavailable.equals("true"))
       
       holder.pricetv.setText(modelitem.getPprice());
      else 
     holder.pricetv.setVisibility(View.GONE);
    */
    if(Integer.parseInt(quantity)<=5)
        holder.dangerpic.setVisibility(View.VISIBLE);
    else 
        holder.dangerpic.setVisibility(View.GONE);
    
    holder.itemView.setOnClickListener(new View.OnClickListener() 
        @Override
        public void onClick(View v) 
             // Error is on Intent
            Intent intent=new Intent(context,BilActivity.class);
            intent.putExtra("id",id);
            context.startActivity(intent);
        
    );

【问题讨论】:

【参考方案1】:

似乎context 为空。不知道为什么(也许你在重构过程中犯了一个错误)但也许试试这个来测试它是否有效?

Intent intent=new Intent(holder.itemView.context,BilActivity.class);
intent.putExtra("id",id);
holder.itemView.context.startActivity(intent); //You might have to cast this to an activity.

【讨论】:

谢谢先生,我用 get context() 替换了上下文,它可以工作

以上是关于什么错误尝试在空对象引用上调用虚拟方法'java.lang.String android.content.Context.getPackageName()'[重复]的主要内容,如果未能解决你的问题,请参考以下文章

数据库错误:尝试在空对象引用上调用虚拟方法“Cursor .getScene()”[重复]

由于尝试在空对象引用上调用虚拟方法“ ”,应用程序崩溃

NullPointerException 错误尝试在空对象引用上调用虚拟方法错误

尝试在空对象引用上调用虚拟方法“void android.hardware.Camera.stopPreview()”

数据库错误:“NullPointerException:尝试在空对象引用上调用虚拟方法 getApplicationInfo()...”[重复]

错误 - 尝试在空对象引用上调用虚拟方法“int android.graphics.Bitmap.getHeight()”