まず、Galaxy s2 Android 4.0.3 を PC に接続できません。Eclipse がデバイスとして検出されないため、コンパイルしてメモリ カードにコピーし、電話にインストールする必要があります。デバッグモードでコンパイルしています。これは問題でしょうか?次に、API レベル 10 (Gingerbread 2.3.3) を使用してアプリを開発しています。
アプリケーションは何をしますか?
アプリ。(ユーザー名とパスワード)の2つのEditTextと送信ボタンがあります。その人が「フォーム」を送信すると、Web ページに接続し、その人から提供されたユーザー名とパスワードが有効かどうかを確認します。有効な場合、ユーザーは Web ページを開くことを強制されます。ここでアプリがクラッシュします。電話のディスプレイが暗くなり、10 ~ 15 秒後に「アプリがクラッシュしました」というアラートが表示されます。エミュレーターでは、すべて正常に動作します。
コードは次のとおりです。
@Override
public void onCreate(Bundle savedInstance){
//...
if( checkUser(strUsername, strPassword) ){
Intent browserInt = new Intent(Intent.ACTION_VIEW, Uri.parse("http://www.mydomain.com"));
startActivity(browserInt);
}
}
private boolean checkUser(String user, String pass){
HttpClient client = new DefaultHttpClient();
HttpGet req = new HttpGet("http://mydomain.com/login.php?u="+user+"&p="+pass+"");
try {
HttpResponse response = client.execute(req);
String html = "";
InputStream in = response.getEntity().getContent();
BufferedReader reader = new BufferedReader(new InputStreamReader(in));
String line = "";
while((line = reader.readLine()) != null){
html += line;
}
reader.close();
in.close();
if(html == null || html.length() < 5) return false;
String[] temp1 = html.split("<body>");
String[] temp2 = temp1[1].split("</body>");
if(!temp2[0].equals("correct")) return false;
return true;
} catch (ClientProtocolException e) {
System.out.println(e);
} catch (IOException e) {
System.out.println(e);
}
return false;
}
解決 策 CMD を開始し、パス (adb.exe がある場所) を入力しました。私の場合:
D:/Eclipse アンドロイド/5.sdk/sdk/platform-tools/adb.exe
次に、設定で DEBUG を有効に設定し、USB を PC に接続しました。次に、CMD で次のコマンドを入力しました。
adb.exe 起動サーバー
次に、デバイス (電話) が接続されているかどうかを確認しました。
adb.exe デバイス
そしてそこに彼がいました。私はEclipseに入り、アプリケーションを実行しました。