小弟今日学习Android,在把书上的例子抄进eclipse的运行的时候发现跳出这个错误,请问有没有人也碰到过呢:
04-12 08:56:49.387: ERROR/WindowManager(706): Activity org.example.sudoku.Sudoku has leaked window com.android.internal.policy.impl.PhoneWindow$DecorView@43acacc0 that was originally added here
04-12 08:56:49.387: ERROR/WindowManager(706): android.view.WindowLeaked: Activity org.example.sudoku.Sudoku has leaked window com.android.internal.policy.impl.PhoneWindow$DecorView@43acacc0 that was originally added here
04-12 08:56:49.387: ERROR/WindowManager(706): at android.view.ViewRoot.<init>(ViewRoot.java:227)
04-12 08:56:49.387: ERROR/WindowManager(706): at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:148)
04-12 08:56:49.387: ERROR/WindowManager(706): at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:91)
04-12 08:56:49.387: ERROR/WindowManager(706): at android.view.Window$LocalWindowManager.addView(Window.java:424)
04-12 08:56:49.387: ERROR/WindowManager(706): at android.app.Dialog.show(Dialog.java:239)
04-12 08:56:49.387: ERROR/WindowManager(706): at android.app.AlertDialog$Builder.show(AlertDialog.java:802)
04-12 08:56:49.387: ERROR/WindowManager(706): at org.example.sudoku.Sudoku.openNewGameDialog(Sudoku.java:82)
04-12 08:56:49.387: ERROR/WindowManager(706): at org.example.sudoku.Sudoku.onClick(Sudoku.java:44)
04-12 08:56:49.387: ERROR/WindowManager(706): at android.view.View.performClick(View.java:2364)
04-12 08:56:49.387: ERROR/WindowManager(706): at android.view.View.onTouchEvent(View.java:4179)
04-12 08:56:49.387: ERROR/WindowManager(706): at android.widget.TextView.onTouchEvent(TextView.java:6532)
04-12 08:56:49.387: ERROR/WindowManager(706): at android.view.View.dispatchTouchEvent(View.java:3709)
04-12 08:56:49.387: ERROR/WindowManager(706): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:882)
04-12 08:56:49.387: ERROR/WindowManager(706): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:882)
04-12 08:56:49.387: ERROR/WindowManager(706): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:882)
04-12 08:56:49.387: ERROR/WindowManager(706): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:882)
04-12 08:56:49.387: ERROR/WindowManager(706): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:882)
04-12 08:56:49.387: ERROR/WindowManager(706): at com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchTouchEvent(PhoneWindow.java:1659)
04-12 08:56:49.387: ERROR/WindowManager(706): at com.android.internal.policy.impl.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1107)
04-12 08:56:49.387: ERROR/WindowManager(706): at android.app.Activity.dispatchTouchEvent(Activity.java:2061)
04-12 08:56:49.387: ERROR/WindowManager(706): at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchTouchEvent(PhoneWindow.java:1643)
04-12 08:56:49.387: ERROR/WindowManager(706): at android.view.ViewRoot.handleMessage(ViewRoot.java:1690)
04-12 08:56:49.387: ERROR/WindowManager(706): at android.os.Handler.dispatchMessage(Handler.java:99)
04-12 08:56:49.387: ERROR/WindowManager(706): at android.os.Looper.loop(Looper.java:123)
04-12 08:56:49.387: ERROR/WindowManager(706): at android.app.ActivityThread.main(ActivityThread.java:4310)
04-12 08:56:49.387: ERROR/WindowManager(706): at java.lang.reflect.Method.invokeNative(Native Method)
04-12 08:56:49.387: ERROR/WindowManager(706): at java.lang.reflect.Method.invoke(Method.java:521)
04-12 08:56:49.387: ERROR/WindowManager(706): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860)
04-12 08:56:49.387: ERROR/WindowManager(706): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)
04-12 08:56:49.387: ERROR/WindowManager(706): at dalvik.system.NativeStart.main(Native Method)
04-12 08:56:49.387: ERROR/WindowManager(706): Activity org.example.sudoku.Sudoku has leaked window com.android.internal.policy.impl.PhoneWindow$DecorView@43acacc0 that was originally added here
04-12 08:56:49.387: ERROR/WindowManager(706): android.view.WindowLeaked: Activity org.example.sudoku.Sudoku has leaked window com.android.internal.policy.impl.PhoneWindow$DecorView@43acacc0 that was originally added here
04-12 08:56:49.387: ERROR/WindowManager(706): at android.view.ViewRoot.<init>(ViewRoot.java:227)
04-12 08:56:49.387: ERROR/WindowManager(706): at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:148)
04-12 08:56:49.387: ERROR/WindowManager(706): at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:91)
04-12 08:56:49.387: ERROR/WindowManager(706): at android.view.Window$LocalWindowManager.addView(Window.java:424)
04-12 08:56:49.387: ERROR/WindowManager(706): at android.app.Dialog.show(Dialog.java:239)
04-12 08:56:49.387: ERROR/WindowManager(706): at android.app.AlertDialog$Builder.show(AlertDialog.java:802)
04-12 08:56:49.387: ERROR/WindowManager(706): at org.example.sudoku.Sudoku.openNewGameDialog(Sudoku.java:82)
04-12 08:56:49.387: ERROR/WindowManager(706): at org.example.sudoku.Sudoku.onClick(Sudoku.java:44)
04-12 08:56:49.387: ERROR/WindowManager(706): at android.view.View.performClick(View.java:2364)
04-12 08:56:49.387: ERROR/WindowManager(706): at android.view.View.onTouchEvent(View.java:4179)
04-12 08:56:49.387: ERROR/WindowManager(706): at android.widget.TextView.onTouchEvent(TextView.java:6532)
04-12 08:56:49.387: ERROR/WindowManager(706): at android.view.View.dispatchTouchEvent(View.java:3709)
04-12 08:56:49.387: ERROR/WindowManager(706): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:882)
04-12 08:56:49.387: ERROR/WindowManager(706): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:882)
04-12 08:56:49.387: ERROR/WindowManager(706): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:882)
04-12 08:56:49.387: ERROR/WindowManager(706): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:882)
04-12 08:56:49.387: ERROR/WindowManager(706): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:882)
04-12 08:56:49.387: ERROR/WindowManager(706): at com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchTouchEvent(PhoneWindow.java:1659)
04-12 08:56:49.387: ERROR/WindowManager(706): at com.android.internal.policy.impl.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1107)
04-12 08:56:49.387: ERROR/WindowManager(706): at android.app.Activity.dispatchTouchEvent(Activity.java:2061)
04-12 08:56:49.387: ERROR/WindowManager(706): at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchTouchEvent(PhoneWindow.java:1643)
04-12 08:56:49.387: ERROR/WindowManager(706): at android.view.ViewRoot.handleMessage(ViewRoot.java:1690)
04-12 08:56:49.387: ERROR/WindowManager(706): at android.os.Handler.dispatchMessage(Handler.java:99)
04-12 08:56:49.387: ERROR/WindowManager(706): at android.os.Looper.loop(Looper.java:123)
04-12 08:56:49.387: ERROR/WindowManager(706): at android.app.ActivityThread.main(ActivityThread.java:4310)
04-12 08:56:49.387: ERROR/WindowManager(706): at java.lang.reflect.Method.invokeNative(Native Method)
04-12 08:56:49.387: ERROR/WindowManager(706): at java.lang.reflect.Method.invoke(Method.java:521)
04-12 08:56:49.387: ERROR/WindowManager(706): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860)
04-12 08:56:49.387: ERROR/WindowManager(706): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)
04-12 08:56:49.387: ERROR/WindowManager(706): at dalvik.system.NativeStart.main(Native Method)
解决方案 »
- Excessive JNI global references (2001) 错误,如何解决
- 安装应用程序后发送的那个广播,是怎样的
- 请教如何在android中获取gsm的主频和邻频
- Andriod下是否可以调用dll
- 请问android创建的AVD模拟器 默认的长和宽是多大?
- 利用monkeyrunner在PC上开发一款自动化测试工具
- 关于用Gson解析带有头的Json数组数据的问题
- 对于按HOME键回到原先ACTIVITY而不是主Activity,如何操作?
- Pull解析问题
- Android中如何做到能够接收到服务器传来的消息?
- 关于R.java的问题
- Android程序实现 将成绩查询系统网站登录后的 内容解析下来显示在手机上。。请高人指点如何实现?
public class Sudoku extends Activity implements OnClickListener {
private static final String TAG = "Suduku";
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//set up click listeners for all the buttons
View continueButton = this.findViewById(R.id.continue_button);
continueButton.setOnClickListener(this);
View newButton = this.findViewById(R.id.new_button);
newButton.setOnClickListener(this);
View aboutButton = this.findViewById(R.id.about_button);
aboutButton.setOnClickListener(this);
View exitButton = this.findViewById(R.id.exit_button);
exitButton.setOnClickListener(this);
}
/** Called when click screen. */
public void onClick(View v) {
switch (v.getId()) {
case R.id.about_button:
Intent i = new Intent(this, About.class);
startActivity(i);
break;
case R.id.new_button:
openNewGameDialog();
case R.id.exit_button:
finish();
break;
}
}
/** Called when menu created. */
@Override
public boolean onCreateOptionsMenu(Menu menu) {
super.onCreateOptionsMenu(menu);
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.menu, menu);
return true;
}
/** Called when menu click. */
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.settings:
startActivity(new Intent(this, Settings.class));
break;
}
return false;
}
/** open the game level to be select. */
private void openNewGameDialog() {
Log.d(TAG, "Show the select Dialog...");
new AlertDialog.Builder(this)
.setTitle(R.string.new_game_title)
.setItems(R.array.difficuty,
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialoginterface, int i) {
startGame(i);
}
})
.show();
}
/** start the game. */
private void startGame(int i) {
Log.d(TAG, "Clicked on " + i);
}
}多选项用配置array.xml:<?xml version="1.0" encoding="utf-8"?>
<resources>
<array name="difficuty">
<item>@string/easy_label</item>
<item>@string/medium_label</item>
<item>@string/hard_label</item>
</array>
</resources>值配置strings.xml <string name="new_game_title">Difficulty</string>
<string name="easy_label">Easy</string>
<string name="medium_label">Medium</string>
<string name="hard_label">Hard</string>
而在于变态的1.6(2.2没有这个问题)怎么弹出对话框
因为activity在弹出对话框之前要调用onpause方法,而这个方法之后再show dialog就会leak
有谁知道1.6怎么让activity弹出对话框吗?别说在onpause里关闭对话框,我就是需要这个对话框