Anadoid開発エラーの集合と小さなテクニック
eclipseコンパイルエンジニアリングの場合、コンピュータがハングアップします.再起動後eclipseは起動できず、起動インタフェースに止まって動かなくなった.
解決策は、eclipseインストールディレクトリの下のconfigurationフォルダにconfig.iniのすべてのものを除いて、ここはeclipseのキャッシュのようです.そして正常に起動できます.
ただし、以前にコンパイル中のプロジェクトのワークスペースに再切り替えた場合、開くことはできません.これは、コンパイルが完了していないのに突然フリーズし、一部のプログラムエラーが発生した可能性があります.私は前にバックアップがあったので、間違ったワークスペースを削除して再構築しました.バックアップを取ることが大切です.
-----------------------------------------------------------------------------
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:Androidandroid-sdk-windowsplatform-toolsの下にある)が、
c. adb uninstallパッケージ名を入力します.たとえば、adb uninstall com.testです.
-----------------------------------------------------------------------------
3. android imageview余分な空白
画像が縮小されると、画像の周囲に余分な空白があることがわかり、検索して解決策を得ることができます.
-----------------------------------------------------------------------------
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.LocalActivity Management$LocalActivityRecord@45f48c40 is not valid; is your activity running?
今日1つの問題に出会って、私は地図の上で1つの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の中にあるので、現在のフォーム管理者は私のActivityではなく、前のレベルのTabActivityの所有であるべきです.そこでgetParent()で得たContextを使って、実行に成功しました.
ただ
AlertDialog.Builder builder = new Builder(FindwebActivity.this);
から
AlertDialog.Builder builder = new Builder(getParent());
でいいです-----------------------------------------------------------------------------------------------------------------------------------------------------------------------
6. Android WindowManager$BadTokenException異常
AndroidはActivity Groupを使用してサブActivityをロードし、サブActivity呼び出しダイアログボックスをポップアップします.
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()に置き換えます.