Anadoid开发错误集合 以及小技巧
来源:互联网 发布:linux apt命令详解 编辑:程序博客网 时间:2024/04/29 10:08
1. 启动eclipse,一直停留在进度条处
eclipse编译工程时,电脑死机。重启后eclipse启动不起来,停在启动界面不动了。
解决方法,清空eclipse安装目录下configuration文件夹中除了config.ini的所有东西,这里好像是eclipse的缓存。然后就可以正常启动了。
但是,当重新切换到之前正在编译的工程的workspace时,还是无法打开。这可能是之前没编译完成突然死机,致使某些程序错误所导致的。由于我之前有备份,就把出错的那个workspace删去,然后重建了一个。做好备份还是很重要的。
-----------------------------------------------------------------------------
2. Re-installation failed due to different application signatures.
运行程序,出现以下错误
[2012-07-24 13:56:15 - Test]Installing Test.apk...
[2012-07-24 13:56:16 - Test]Re-installation failed due to different application signatures.
[2012-07-24 13:56:16 - Test] You mustperform a full uninstall of the application. WARNING: This will remove theapplication data!
[2012-07-24 13:56:16 - Test] Pleaseexecute 'adb uninstall com.test' in a shell.
[2012-07-24 13:56:16 - Test] Launch canceled!
解决方法:找到保护adb.exe的文件夹,
a. 进入命令行,
b. 进入保护adb.exe的文件夹有的在tools文件夹下面(有的在F:\Android\android-sdk-windows\platform-tools下面),
c. 输入 adb uninstall包名,例如我的是adb uninstall com.test
-----------------------------------------------------------------------------
3. android imageview 多余空白
发现如果图片被缩小尺寸后,图片周围会有多余的空白,搜索得到解决办法:
<ImageView
(…)
android:adjustViewBounds=”true” />
-----------------------------------------------------------------------------
4.保持屏幕一直亮
Windowwindow = getWindow();
window.addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
-----------------------------------------------------------------------------
5.android.view.WindowManager$BadTokenException: Unable to add window
android.view.WindowManager$BadTokenException: Unable to add window -- token 错误提示:android.app.LocalActivityManager$LocalActivityRecord@45f48c40 is not valid; is your activity running?
今天遇到一个问题,我在地图上添加一个Overlay 然后想在点击这个overlay 图标的时候弹对话框Dialog, 按这样的思路写完后,测试报出了上面的异常。 代码如下:// 退出主程序dialog public boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) { dialog(); return false; } return super.onKeyDown(keyCode, event); } protected void dialog() { AlertDialog.Builder builder = new Builder(FindwebActivity.this); builder.setMessage("确定要退出心愿吗?"); builder.setTitle("提示"); builder.setPositiveButton("确认", new android.content.DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { dialog.dismiss(); AgentApp.getInstance().onTerminate(); } }); builder.setNegativeButton("取消", new android.content.DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { dialog.dismiss(); } }); builder.create().show(); }
查资料说问题在于 context. 说不能使用 getApplicationContext(),this 所得到的Context 必须用your_Activity.this 所获取的Context. 而我就是用最后一种的,还是出差。 于是我想下我的实际的运行环境,当前Activity是在tabActivity 中的,那么得到当前的窗体管理者应该是上一级TabActivity 所有,而非我的Activity。 于是我用 getParent()所得到的Context,运行成功。只需将AlertDialog.Builder builder = new Builder(FindwebActivity.this);
改成AlertDialog.Builder builder = new Builder(getParent());
即可
// 退出主程序dialog public boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) { dialog(); return false; } return super.onKeyDown(keyCode, event); } protected void dialog() { AlertDialog.Builder builder = new Builder(FindwebActivity.this); builder.setMessage("确定要退出心愿吗?"); builder.setTitle("提示"); builder.setPositiveButton("确认", new android.content.DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { dialog.dismiss(); AgentApp.getInstance().onTerminate(); } }); builder.setNegativeButton("取消", new android.content.DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { dialog.dismiss(); } }); builder.create().show(); }
改成AlertDialog.Builder builder = new Builder(FindwebActivity.this);
AlertDialog.Builder builder = new Builder(getParent());
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------
6. Android WindowManager$BadTokenException异常
ERROR/AndroidRuntime(10104): Caused by: android.view.WindowManager$BadTokenException: Unable to add window -- token android.app.LocalActivityManager$LocalActivityRecord@45a58ee0 is not valid; is your activity running?
原因分析:
因为new对话框的时候,参数content 指定成了this,即指向当前子Activity的content。但子Activity是动态创建的,不能保证一直存在。其父Activity的content是稳定存在的,所以有下面的解决办法。
解决办法:
将content替换为getParent()即可。
- Anadoid开发错误集合 以及小技巧
- iPhone开发小技巧集合
- iPhone开发小技巧集合 [转]
- linux 标准输出、标准错误输出、以及shell小技巧
- 小技巧大集合
- 小技巧集合
- Android小技巧集合
- Android小技巧集合
- Linux小技巧集合
- js小技巧集合
- 安卓开发— —小技巧集合
- Android开发中常见错误与开发小技巧
- 小程序开发中js错误集合,一直会更新
- 开发js时的提示错误小技巧
- Android 开发技巧集合
- Android 开发技巧集合
- Android 开发技巧集合
- Android 开发技巧集合
- COM组件开发实践(转载)
- 数组综合应用题
- lightinthebox zencart 自动添加商品多图
- C# Process.Start()方法详解
- Ubuntu 12.10升级
- Anadoid开发错误集合 以及小技巧
- Android组件详解
- 程序在内存中存储详情(Text、Data、BSS、Heap、Stack....)
- PL/SQL logs
- JBoss7 安装配置
- 怎样成为优秀的电子工程师
- HDU 1452 因子和+积性函数+逆元
- php跳转页面
- 很实用的网站、系统小图标