출처 : http://stackoverflow.com/questions/2209406/issues-with-android-tabhost-example

안드로이드 웹사이트에서 제공되는 tutorial중 TabLayout 은 제대로 실행이 되지 않는다.
해당 source가 완전하지 않아서 인데 이를 해결하는 방법이 위 사이트에 나와있다.

1. main.xml에서
The third to last line under /res/layout/main has a typo (a ; instead of a :)
Eclipse에서 알려주듯이 에러가 나는 라인에 보면 세미콜론(;)으로 되어있다. 이를 콜론(:)으로 바꿔준다.

2. HelloTabLayout.java에서
tabHost.setCurrentTab(intent); 가 있는데 
setCurrentTab은 int형을 인자로 원하는 tab을 선택하게 된다.
현재 3개의 tab이 있으므로 (0,1,2)중의 숫자를 넣어주면 된다.
tabHost.setCurrent(0);

또는 이름으로

tabHost
.setCurrentTabByTag("albums"); 과 같이
위에 tabSpec에 선언한 이름 ("songs", "artists", "albums")중의 하나를
tab이름으로 넣으면 되다.

spec = tabHost.newTabSpec("songs").setIndicator("Songs",
                          res.getDrawable(R.drawable.ic_tab_songs))
                      .setContent(intent);

3. 중간에 난데없이 나타나는 mTabHost 를 볼 수 있는데
이클립스에서 에러로 나타날 것이다.
이것 역시 제대로 오타다

그냥 tabHost로 바꿔주면 된다.

4. 해당 tutorial에서는 ic_tab_artists.xml 파일만 보여주는데
실제로는 같은내용으로
ic_tab_songs.xml 와 ic_tab_albums.xml 두 xml파일을 같은 위치에 생성 해 주어야 한다.

5. 마지막으로 AndroidManifest.xml 파일에
tab으로 사용할 activity들이 정의되어있지 않은데

현재 정의된 Activity아래에 Activity들을 추가해 주면된다.
해당 class이름 앞에 .을 붙여서 .AlbumsActivity ^^
<activity android:name=".AlbumsActivity"
                 
android:label="@string/app_name"
                 
android:theme="@android:style/Theme.NoTitleBar">
       
</activity>
 
<activity android:name=".ArtistsActivity"
                 
android:label="@string/app_name"
                 
android:theme="@android:style/Theme.NoTitleBar">
       
</activity>
         
<activity android:name=".SongsActivity"
                 
android:label="@string/app_name"
                 
android:theme="@android:style/Theme.NoTitleBar">
       
</activity>


=======================================================================

첨부 파일을 참고 할 것.
이것이 제대로 실행이 안되면 애뮬레이터를 제거하고 새로 만들어서 test 해 볼 것.
728x90
03-28 23:57:32.201: ERROR/AndroidRuntime(388): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.nobang.widget/com.nobang.widget.BillboardWidget}: java.lang.RuntimeException: Unable to start activity ComponentInfo{com.nobang.widget/com.nobang.widget.ArtistsActivity}: java.lang.RuntimeException: Your content must have a ListView whose id attribute is 'android.R.id.list'


03-28 23:57:32.201: ERROR/AndroidRuntime(388): Caused by: java.lang.RuntimeException: Unable to start activity ComponentInfo{com.nobang.widget/com.nobang.widget.ArtistsActivity}: java.lang.RuntimeException: Your content must have a ListView whose id attribute is 'android.R.id.list'

==>
내 소스의 문제였다.
onCreate() method 에서
super.onCreate(savedInstanceState);
setContentView(R.layout.list_artists);  --> 바로 setContentView를 선언해서 사용하려고 했는데
정확히는 모르겠지만 그게 문제였던 것 같다.
해당 ListView를 사용하려면 list라는 attribute가 선언되어 있어야 하는데 없다는것을 보니.

의도한것과는 전혀 상관없는곳에서 나서 참...
그래도 다행이 찾았으니 ㅋㅋㅋ


728x90
ActivityManager: Error: Activity class {com.nobang.hello/com.nobang.hello.HelloRelativeLayout} does not exist.
[2010-03-28 23:52:50 - SampleHelloRelativeLayout]Starting activity com.nobang.hello.HelloRelativeLayout on device
[2010-03-28 23:52:54 - SampleHelloRelativeLayout]ActivityManager: DDM dispatch reg wait timeout
[2010-03-28 23:52:54 - SampleHelloRelativeLayout]ActivityManager: Can't dispatch DDM chunk 52454151: no handler defined

이 에러들의 반복이다.

도저히 원인을 찾을 수가 없다. 저 Activity class(HelloRelativeLayout) 가 버젓이 있구만...

03-28 23:53:05.263: ERROR/AndroidRuntime(317): ERROR: thread attach failed
이런 에러도 보이고...

그래서 해당 프로젝트를 선택한 뒤에
Clean을 시켜줬더니 된다. 쩝.

When you see those error messages. try clean the project.
728x90
정녕이것이 문제였던거 ... 좌절을 하지 않을 수 없다.

처음 MAC에서 Eclipse를 가동하여 android를 실행했을 때,
프로젝트 생성화면에서 아주 살짝 버전선택하는 것이 나타났고
그이후로 생성하면서도 계속 그게 좀 불편했다.

그러다 Windows에서 개발환경을 세팅하고 보니
Mac에서는 보였던 SDK version선택이 아예보이지 않았다.
그래서 몇주째 해결을 하려고
SDK를 이전버전도 설치해보고 별의별짓을 다 해봤는데
결국 찾아낸 것은....

VMware로 윈도우를 실행시킨게 문제다.
해상도가 내 맥북의 13.3인치에서 보이는 크기에서
VMware의 창 크기만큼 작아져서 안보였던 것인데
그것이 절묘하게도 완전히 가려졌었던 것이다.

전체화면으로 전환한다음 프로젝트 생성창을 키워보니
그제서야 숨어있던 SDK선택 콤보가 나타났다.
해당항목이 완벽하게 가려져서 있는지 생각도 못했던....

그래도 소스를 실행시켜보니... 안된다 쩝.
윈도에서는 될 줄 알았었는데 이런반전이...

if you use a small display
you couldn't find SDK combo.
I recommend  at least 1024*768 or higher.
or try the create project window bigger by dragging
then you'll see the SDKs
728x90
[2010-02-15 21:06:45 - Emulator]2010-02-15 21:06:45.326 emulator[630:10b] Warning once: This application, or a library it uses, is using NSQuickDrawView, which has been deprecated. Apps should cease use of QuickDraw and move to Quartz.
[2010-02-15 21:08:23 - Earthquake8]HOME is up on device 'emulator-5554'
[2010-02-15 21:08:23 - Earthquake8]Uploading Earthquake8.apk onto device 'emulator-5554'
[2010-02-15 21:08:23 - Earthquake8]Installing Earthquake8.apk...
[2010-02-15 21:09:32 - Earthquake8]Installation error: INSTALL_FAILED_MISSING_SHARED_LIBRARY
[2010-02-15 21:09:32 - Earthquake8]Please check logcat output for more details.
[2010-02-15 21:09:32 - Earthquake8]Launch canceled!

소스상에 에러는 안나타 나는데 Build를 하면 위와 같은 메세지와 함께 안된다 ㅡㅡ;
check logcat를 해보라고 해서 그게 뭔가 했더니

Eclipse에서는 상단메뉴의
Window > Show View > Others > Android 밑에 LogCat이 있다.
그 View를 추가한 뒤에 Build를 하면 로그가 쭉~~ 나오는데
거기에서도 에러가 보인다 ㅡㅡ;

02-15 21:09:27.987: ERROR/PackageManager(59): Package com.nobang.earthquake requires unavailable shared library com.google.android.maps; failing!

당췌 왜?
문제를 찾기위해
Eclipse > Preferences > Android에서 target 버전을 조금 낮춰봤다
Level 6정도로 그랬는데도 실패다.
Level 2로 낮추고 Google Api로 바꿨는데도 안된다... 쩝.

728x90
며칠동안 궁리를 하다가 찾기는 했는데...
제대로 안된다.

그래도 인증하는 법을 찾았으니

하나는 이거 같다.
Eclipse에서 해당 프로젝트를 선택한다.
오른쪽 버튼클릭하여 :Android tools에서 Unsigned나 Signed된 인증을 한다고하면
거기에서 생성할 수 있는 창이 뜬다.

생성시에 지정하는 이름들을 잘 기억해 놓은뒤
인증서가 있는 위치에서
keytool -list -alias <프로그램별 인증서Alias> -keystore <keystore이름>
keytool -list -alias whereami -keystore whereami.keystore

이러면 MD5로 된 인증서 Key가 나타나는데

http://code.google.com/android/add-ons/google-apis/mapkey.html
이 사이트에서 MD5 key를 넣어서 Key를 받아

main.xml 파일에 Android설정으로 넣어준다.



728x90
BLOG main image
"그게 뭐 어쨌다는 거냐?" 늘 누가 나에게 나에대한 말을할 때면 이말을 기억해라. by nobang

카테고리

nobang이야기 (1933)
Life With Gopro (7)
Life With Mini (79)
Diary (971)
너 그거 아니(do you know) (162)
난 그래 (159)
Study (290)
Cloud (26)
Go lang (30)
Front-end (27)
Device (3)
MAC (1)
Spring framework (49)
Java (13)
English (39)
SOA (0)
Idioms (7)
모르는거 (5)
WriteEnglish (10)
Android (56)
속지말자 (10)
Project (34)
Poem (15)
Song (0)
Photo (113)
낙서장 (45)
일정 (0)
C.A.P.i (2)
PodCast (0)
nobang (27)
고한친구들 (4)
recieve (0)
History (0)
android_app (2)

최근에 올라온 글

최근에 달린 댓글

최근에 받은 트랙백

Total :
Today : Yesterday :