1

アプリケーションの Android バージョンの変更に問題があります。プロジェクトの下の「パッケージ エクスプローラー」で Android 2.2 を作成しましたが、4.2.2 などのより高いバージョンを試してみましたが、動作しませんでしたが、2.2 を試してみると問題なく動作します。プロジェクトを右クリック>プロパティ> Android> Android 4.2.2でバージョンを変更しようとしましたが、それもうまくいきませんでした。これが私のSDKです:

<uses-sdk android:minSdkVersion="9"    android:targetSdkVersion="17" />

4.2.2 では、以下のログが表示されます:

09-28 02:27:13.088: W/System.err(785): com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
09-28 02:27:13.088: W/システム。 err(785): dalvik.system.NativeStart.main(ネイティブ メソッド)
09-28 02:27:17.708: I/System.out(785): onpause loginauthactivity.......
09-28 02:27 :17.718: I/System.out(785): 内部 homeButton() .......
09-28 02:27:18.178: I/Choreographer(785): 121 フレームをスキップしました! アプリケーションがメイン スレッドで処理しすぎている可能性があります。
09-28 02:27:19.918: 私/Choreographer(785): 39 フレームスキップしました! アプリケーションがメイン スレッドで処理しすぎている可能性があります。
09-28 02:27:20.318: 私/Choreographer(785): 62 フレームスキップしました! アプリケーションがメイン スレッドで処理しすぎている可能性があります。

09-28 02:27:22.738: I/System.out(785): menu_login 内部

私のクラスのコードスニペット:

public class LoginAuthActivity extends Activity {

private Button login;
private EditText username;
private EditText password;
private String user = null;
private String pwd = null;
private String status = null;
private boolean flag = false;
Boolean isInternetPresent = false;
boolean logged;

//class variables
AppEngineDAO ackDAO;
AlertDialogManager alert = null;
SessionManager session = null;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    //set the layout
    setContentView(R.layout.activity_login_auth);
    Toast.makeText(getApplicationContext(),
            "Inside LoginAuthActivity onCreate()", Toast.LENGTH_SHORT)
            .show();

    //creating object of the classes
    ackDAO = new AppEngineDAO();
    session = new SessionManager(getApplicationContext());
    alert = new AlertDialogManager();


    Toast.makeText(getApplicationContext(),
            "User Login Status: " + session.isLoggedIn(), Toast.LENGTH_LONG)
            .show();

    username = (EditText) findViewById(R.id.editusername);
    password = (EditText) findViewById(R.id.editpassword);
    login = (Button) findViewById(R.id.btnlogin);
    login.setOnClickListener(loginButtonListener);

}

private OnClickListener loginButtonListener = new OnClickListener() {
    public void onClick(View v) {
        Toast.makeText(getApplicationContext(),
                "Inside loginButtonListener OnClickListener()",
                Toast.LENGTH_SHORT).show();

        System.out.println("INSIDE login BUTTON .....");

        displayError();

        if (flag == false) {
            user = username.getText().toString().trim();
            pwd = password.getText().toString().trim();
            System.out.println("inside flag false.....");
            try {
                status = ackDAO.login(user, pwd,"student");
                System.out.println("status in login auth....." + status);
                if (status.equals("ok")) {
                    System.out.println("inside STATUS OK.....");
                    session.createLoginSession(user, pwd);
                    Intent i = new Intent(getApplicationContext(),
                            HomeActivity.class);
                    i.putExtra("user", user);
                    startActivity(i);
                    overridePendingTransition(R.anim.push_left_in, R.anim.push_up_out);
                } else if (status.equals("notok")) {
                    System.out.println("inside STATUS notOK.....");
                    alert.showAlertDialog(LoginAuthActivity.this,
                            "Login failed..",
                            "Username/Password is incorrect", false);
                }
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    }
};
4

1 に答える 1

0

ログを見ると、メインスレッドで重い操作を行っているようです。Android のバージョンを 4.2 に変更した後、プロジェクトのクリーンアップを試みます。マニフェストまたはプロパティ ファイルで SDK のバージョンを手動で変更する必要はありません。

于 2013-09-28T04:19:57.923 に答える