'targetSdkVersion'에 해당되는 글 2건

  1. 2014.11.24 Unable to resolve target 'android-9' 와 안드로이드 액션바 actionbar 사용
  2. 2014.10.06 안드로이드 팁
Android 안드로이드2014. 11. 24. 16:39

안드로이드 허니콤 API 11 이상에서 actionbar를 바로 사용할 수 있다. 그러나 안드로이드 API버전 11미만에서 액션바를 사용하려면 몇 가지 작업이 필요하다.


import android.support.v7.app.ActionBarActivity;

import android.support.v7.app.ActionBar;


그리고 Activity는 ActionBarActivity를 상속받는다.

public class MyActivity extends ActionBarActivity { } 로 고친다.


....


액션바를 사용하려고 위 임포트 구문을 먼저 코드 앞머리에 두었다.

그리고 android-support-v7-appcompat를 임포트 했다. 

그랬더니....


[2014-11-24 16:09:17 - google-play-services_lib] Unable to resolve target 'android-9'

[2014-11-24 16:10:12 - android-support-v7-appcompat] E:\JavaAndroid\adt-bundle-windows-x86-20140702\sdk\extras\android\support\v7\appcompat\res\values-v21\styles_base.xml:75: error: Error retrieving parent for item: No resource found that matches the given name 'android:Widget.Material.ActionButton'.

............

.......

....


위와 같은 에러가 주르륵 나왔다.

아직 해결법을 찾지 못했다.

다만 구글링을 하면서 를 http://stackoverflow.com/questions/18293088/adding-support-libraries-to-android-project 를 발견했다.


이쯤에서 말하고 넘어가야할 중요한 점은 위 에러가 지금 진행중인 프로젝트에서 발생한 것이 아니다. 구글에서 만든 안드로이드 android-support-v7-appcompat 라이브러리에 빨간바탕에 흰색 X마크가 붙으면서 에러가 뜬다. 구글로 해결책을 찾아보니 대부분 minSdkVersion, targetSdkVersion를 낮추거나 높이거나와 같은 답변 일색이다. 영어가 짧은 나로서는 그렇게 이해했다. 프로젝트에 생긴 에러가 아니고 추가한 라이브러리에 뜨는 오류임을 이해못 한 답변이 많다.


갈길이 앞으로 창창 대로다?. 아스팔트나 꽃길까지는 아니라도 신작로는 될줄 알았다. 지원(서포트 support) 라이브러리를 깔자 마자 뜨는 에러! 불과 몇일 전에 안드로이드 SDK도 업데이트했었다.


....

........


2시간 정도 시간과 시간을 보내고 에러를 사라지게 만들었다. 해결이라고 보기에는 언어적으로 어폐다. 폴더를 뒤적거려 ADT를 업데이트하기 전 appcompat_v7 폴더를 찾아내 프로젝트뷰에 임포트했기 때문이다. 이클립스 프로젝트뷰에는 appcompat_v7 대신 android-support-v7-appcompat로 표시가 된다. 당분간은 Unable to resolve target 'android-9'과 같은 에러가 아래로 죽 뜨지 않는 appcompat_v7를 잘 보관해두는 쪽으로 가닥을 잡았다.

Posted by 코드버무려
AndroidTip2014. 10. 6. 09:03

안드로이드 개발 팁  

ANDROID  development TIP

안드로이드용 코딩을 하면서 알면 편리한 내용을 기록


[서비스 컴포넌트 디버그]

안드로이드 4대 컴포넌트는 액티비티, 서비스, 프로바이더, 리시버 이다. 

이들을 섞어 디버깅할 때 프로세스가 분리된 경우 Service에 브레이크포인터를 놓아도 효과가 없다.

그때 아래 코드 한줄을 원하는 서비스 클래스 내부에 넣어두면 비로서 디버그 시작점을 잡을 수 있다.

android.os.Debug.waitForDebugger();


[Log.v, Log.i, Log,e, Lod.d 태그 항목에 클래스명 표시]

private static final String TAG = MainActivity.class.getSimpleName(); 는 Log함수 태그 칸에 사용하면 적절



[같은 패키지에서 프로세스를 따로 만들 경우 ":remote"를 사용한다]

<activity android:name=".BeProcess" android:process=":remote"  >

<service android:name=".BeProcess" android:process=":remote"  >



[안드로이드 appcompat_v7 자동 추가 막기]

appcompat_v7를 안드로이드 프로젝트에서 삭제

안드로이드 appcompat_v7 삭제

::사용할 SDK를 정해주는 프로젝트 창에서 최소(Minimum Required), Target, Compile With를 모두 최신 버젼으로 정해준다.

::현재 API 20, API21이 최신이다. APi 20을 위 세가지 항목에 모두 설정해 두고 프로젝트를 만든다.

::AndroidManifest파일에서 <uses-sdk android:minSdkVersion="20" android:targetSdkVersion="20" />에서 <uses-sdk android:minSdkVersion="7" />로 변경한다.

::더는 Appcompat v7을 필요로 하지 않는다



[안드로이드 HAXM 적용하고 XD 켜고 AVD 속도 높이기::]

{This computer meets the requirements for HAXM, but Intel Execute Disable Bit (XD) is not turned on HAXM can be installed, but will not work until XD is enabled. Please refer to the Intel HAXM documentation for more information.}

#위와같은 에러 대화상자를 띄우고 설치 작업이 롤백되었다. :::관리자 administrator 로 커맨드 command 콘솔로 들어가서 bcdedit /set nx AlwaysOn 를 입력한다

{The operation completed successfully.}라고 콘솔창에 나온다. PC를 재부팅합니다. 

#안드로이드 가상 장치AVD를 만들 때 Use Host GPU 를 체크해서 선택한다.

#http://stackoverflow.com/questions/21635504/error-during-installing-haxm-vt-x-not-working

#haxm-windows_r05를 인텔지원 사이트에서 다운받아 설치했다.

#설명서에는 Android SDK to be installed (version 17 or higher)라 한다ㅏ.

#API14로 AVD를 만들었고 속도는 빨라졌다.


[패키지를 구문 분석하는 중 문제가 발생했습니다]

#제작한 패키지의 minSdkVersion, targetSdkVersion등이 설치하려는 스마트폰 디바이스 버전보다 높을 경우 나타난다.

==>스마트폰에 설치된 안드로이드 OS 버전을 업그레이드나 업데이트한다.

===>Android 운영체제 업이 여의치 않을 경우 minSdkVersion, targetSdkVersion버젼을 낮춘 패키지를 만들어 설치한다. 

===>minSdkVersion targetSdkVersion는 AndroidManifest.xml파일 상에서 manifest 요소에 있다.



[이클립스 프로젝트 파일 중복 오류]

#프로젝트 퍼스펙트 또는 프로젝트뷰에서 MyProject를 지우고 바로 다른 MyProject를 임포트하면 일부 파일이 두 개씩 중복해서 나타난다. 예로 AndroidManifest.xml파일이 두 개가 보인다. 여기서 해결 방법은 녹록하지 않다. 


#그래서 미리 차단하는 방법을 사용한다. 불편하더라도 프로젝트를 지우고 workspace폴더에 생기는 .metadata파일을 윈도우탐색기에서 삭제한다. 같이 있는 손댈 필요없는 프로젝트는 다른 임시폴더를 만들어서 그쪽으로 이동 시킨 후 재import한다. 워크스페이스에 있는 project폴더는 임포트가 안되기 때문이다. 


#이렇게 되면 모든 eclipse설정이 초기화되는데 기존에 물려있던 프로젝트도 다시 import해야한다. 그 시간이 중복되 나타나는 일부 파일을 삭제해가면서 오류를 잡는 시간보다 빠르다. 중요한 점은 그렇게 해서 오류 잡기도 쉽지 않은게 이클립스에서 프로젝트를 관리하는 일부 파일이 두 개씩 나타나는 상태는 eclipse 구조적문제로 보이기 때문이다.



#build.prop file 이 해당 스마트폰 모델 정보를 저장한 파일이다. 개발자가 아닐경우 이 파일에 접근하려면 루팅(rooting)이 먼저 필요하다. 사용중인 스마트폰을 다른 모델로 탈바꿈 시키려면 build.prop 파일을 편집(edit)으로 가능하다. build.prop는 "/system"폴더에서 찾을 수 있다.

Posted by 코드버무려