【问题标题】:Android: unable to add window - token null is not for an application [duplicate]Android:无法添加窗口 - 令牌 null 不适用于应用程序 [重复]
【发布时间】:2011-05-28 02:43:32
【问题描述】:

可能重复:
Android 1.6: “android.view.WindowManager$BadTokenException: Unable to add window — token null is not for an application”

android.view.WindowManager$BadTokenException: 无法添加窗口 -- 令牌 null 不适用于应用程序 在 android.view.ViewRoot.setView(ViewRoot.java:509) 在 android.view.WindowManagerImpl.addView(WindowManagerImpl.java:177) 在 android.view.WindowManagerImpl.addView(WindowManagerImpl.java:91)

我的代码:

    public class aaaa extends View {
  private WindowManager mWindowManager;
 public aaaa(Context context) {
  super(context);
 }

@Override
protected void onDraw(Canvas canvas) {
  canvas.drawBitmap(BitmapFactory.decodeResource(this.getResources(), R.drawable.icon), 0, 0, null);
  super.onDraw(canvas);
 }

 @Override
 public boolean onTouchEvent(MotionEvent event) {
  ddd();
  return super.onTouchEvent(event);
 }

 void ddd(){
     mWindowManager = WindowManagerImpl.getDefault();

        WindowManager.LayoutParams lp = new LayoutParams(50,50);
        lp.x = 50;
        lp.y = 50;

        mWindowManager.addView(this, lp);
   }

【问题讨论】:

  • 更深入的解释和更好的标题来说明您的实际要求会有所帮助

标签: android


【解决方案1】:

如果您使用无效的上下文,通常会引发此异常。你传递给你的 aaa 类的构造函数是什么?如果你通过getApplicationContext() 它可能会失败。尝试传递负责显示视图的 Activity 的上下文(通常使用引用 this)。

【讨论】:

    猜你喜欢
    • 2019-01-04
    • 1970-01-01
    • 1970-01-01
    • 2011-12-17
    • 1970-01-01
    • 1970-01-01
    • 2011-02-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多