2013-12-20 2 views
4

다른 곳에서도이 사진을 보았습니다. 답변은 일반적으로 "이것은 Android 2.3에서 알려진 문제입니다."4.4는 분명히 사용하고 있습니다. 답이 아닙니다.Android 에뮬레이터가 회전하지만 앱이 다시 그려지지 않습니다.

나는 "Hello, Android"와 같은 가장 단순한 프로그램을 가지고 있습니다. 에뮬레이터를 실행하면 세로 모드로로드됩니다. Fn-Ctrl-F11 (Mac)을 사용하여 에뮬레이터가 가로 모드로 회전합니다. 그러나 응용 프로그램과 전화 컨트롤은 다시 그리지 않습니다. 모든 것이 단지 옆으로 보입니다. 하지만 난 못해,

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:tools="http://schemas.android.com/tools" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 

tools:context=".Hello" > 

<TextView 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="@string/hello_world" /> 

</LinearLayout> 

이클립스의 ADT 번들 빌드 v22.3.0-887826으로 짓고 있어요 :

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
package="com.test.helloandroid" 
android:versionCode="1" 
android:versionName="1.0" > 

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

<application 
    android:allowBackup="true" 
    android:icon="@drawable/ic_launcher" 
    android:label="@string/app_name" 
    android:theme="@style/AppTheme" > 
    <activity 
     android:name="com.test.helloandroid.Hello" 
     android:label="@string/app_name" > 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 

      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 
</application> 

</manifest> 

및 활동 XML 파일 : 여기

매니페스트의 이 사소한 것에 대해 중요한 것을 상상해보십시오.

내 에뮬레이터는 Galaxy Nexus, Android 4.4 API 레벨 19 용입니다. 하드웨어 키보드가 표시되어 있고 표시가없는 하드웨어 키보드로 시도했습니다. 내가 어디에서나 보지 못했던 "키보드 뚜껑 지원"설정에 대한 참조를 발견했습니다.이 주석은 3/12 &에서 나온 것입니다.

이것은 내 첫 번째 Android 앱이므로이 환경에서 디버깅을하는 완전한 초보자입니다. TIA, 내가 누락 된 것에 대한 제안.

편집 : hello.java

package com.test.helloandroid; 

import android.os.Bundle; 
import android.app.Activity; 
import android.view.Menu; 

public class Hello extends Activity { 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_hello); 
} 


@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    // Inflate the menu; this adds items to the action bar if it is present. 
    getMenuInflater().inflate(R.menu.hello, menu); 
    return true; 
} 

} 
+0

방향 변경 활동 파괴 재현된다. – Raghunandan

+1

'Hello.java'의 게시 코드 –

+0

Hello 코드를 게시하십시오.java –

답변

2

은 분명히, 모든 오래된 새로운 다시입니다 : orientation change bug in 4.4

"그들이 배관을 overthink 더 많은이 쉬워 드레인을 중지하는 것입니다."

나는 명백한 것을 놓치지 않았다는 것을 아는 것이 좋다. OTOH 이것은 Google의 품질 보증 측면에서 꽤 분명한 실패입니다. 아무도보고 있지 않은 동안 계산서가 몰래 들어 왔습니까? 아니면 그들은 욕심 많은 & 에뮬레이터를 테스트하여 테스트 용 휴대 전화를 판매하려고합니까? 내 미래에 장치가있는 것처럼 보입니다.

편집 :

참조 : CommonsWare, 안드로이드의 프레임 워크 엔지니어로 대답했다.

Impossible to rotate the emulator with android 4.4

2

당신이 초보자 있다면, 당신은에 대한 Activity lifecycle 알고 this reference document을 통해 가야에 대한 코드를 추가.

여기서는 화면을 회전 할 때 발생하는 프로세스를보다 쉽게 ​​이해할 수 있도록 LogToast을 포함하고 있습니다.

예 :

package com.test.helloandroid; 

import android.os.Bundle; 
import android.app.Activity; 
import android.view.Menu; 

public class Hello extends Activity { 


private static final String TAG = "Hello"; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_hello); 

    Log.d(TAG, "onCreate"); 
    Toast.makeText(this, "onCreate", Toast.LENGTH_SHORT).show(); 
} 


@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    // Inflate the menu; this adds items to the action bar if it is present. 
    getMenuInflater().inflate(R.menu.hello, menu); 
    return true; 
} 

@Override 
protected void onResume() { 
    super.onResume(); 

    Log.d(TAG, "onResume"); 
    Toast.makeText(this, "onResume", Toast.LENGTH_SHORT).show(); 
} 

@Override 
protected void onPause() { 
    super.onPause(); 

    Log.d(TAG, "onPause"); 
    Toast.makeText(this, "onPause", Toast.LENGTH_SHORT).show(); 
} 


} 

는 나는 그것이 도움이 될 것입니다 희망!

+0

나는 화면이 회전했을 때 두 번째 메시지가 나타나기를 기대했지만 실제로는 발생하지 않는다. 나는 매우 유용한 정보이기 때문에 대답을 upvoted했지만 불행히도 회전 된 에뮬레이터 셸 내부에 회전하지 않는 내용이 남아 있습니다. – ssdscott

+0

@ssdscott : 예, 맞습니다. 에뮬레이터 4.4에 버그가 있습니다. –