기본 콘텐츠로 건너뛰기

라벨이 android인 게시물 표시

Appspresso – com.android.sdklib.build.ApkCreationException: Debug Certificate expired

오늘 앱스프레소 빌드하다가 이런 오류가 났다. 어쩌구저쩌구 com.android.sdklib.build.ApkCreationException: Debug Certificate expired 해결방법 . debug.keystore 삭제. 후 재 빌드 끝.

[Andorid] Export activity – 1. 안드로이드 라이브러리 프로젝트

내가 만든 activity를 다른 앱에 넣어야 할 경우가 있다. 가장 좋은 방법은  코드를 그냥 통째로 넘기면 된다.   그런데 문제는 코드를 순수하게 내준다는게 영 꺼림직하다. 코드를 감추기 위해서는 jar로 묶어 라이브러리처럼 쓰게끔 하는게 가장 좋을듯 싶었다. Android는 일반 자바 프로젝트하고 좀 다르다. 무작정 export를 했더니  xml, res  가 중복됬다고 어쩌고 난리다. 그래서 우선은 일단 라이브러리 시킬 수 있는지를 먼저 찾아봤다. 그래서 찾아보다가 발견한 Library project  내가만든 프로젝트를 라이브러리화 시켜 jar로 만든뒤 다른 프로젝트에서 사용할 수 있게끔 해주는 프로젝트 안드로이드 개발 홈페이지에 라이브러리 프로젝트 사용방법과 소개가 나와있다. http://developer.android.com/guide/developing/projects/index.html 라이브 프로젝트 생성 생성하는 법은 비교적 간단하다. 그냥 일반 안드로이드 프로젝트 생성한뒤에 프로젝트의  properties -> android -> is Library  선택. 끝. 참고로 is Library가 선택되면 이 프로젝트는 apk를 만들 수가 없게 되어 일시적으로 실행이 되지 않는다. 실행을 하려면 is Library의 선택을 풀어주면 된다. 라이브러리 프로젝트 추가하기 위에서 만든 라이브러리프로젝트를 새 프로젝트에서 추가 시키려면 위와 같은데로 들어가서     properties -> android  Add 를 누르면 라이브러리 선택하는 팝업이 나오고 밑에 GameLibrary가 선택되게끔 되어있다. 가볍게 선택해주고 ok 누르면 android Dependencies 밑에 GameLibrary.jar가 들어가 있음을 볼 ...

[Andorid] Export activity – 2. R.java, main.xml 없이 코딩하기.

activity를 라이브러리로 만들어 사용하기 위해 무작정 jar로 export할 경우 생기는 에러다. androidmanifest.xml과  res 하위에 있는 폴더들이 중복된다고 난리다. 아직 정확하진 않은데, 여기저기 검색 결과 먼저 경험해본 사람들의 말로는 일반적으로 하나의 안드로이드 프로젝트에서 androidmanifest.xml는 무조건 하나이어야 한다. 그리고 res도 마찬가지로 중복은 당연히 안되고, 존재조차 안되는지는 다시 한번 확인해봐야겠다. 그래서 아무튼!! res를 없애기 위해 layout도 xml없이 코딩하고, stirng 따위나, id의 경우도 R.java가 아닌 직접 코딩을 해서 만든 프로젝트를 androidmanifest.xml과 res를 빼고 export 했더니 다른 앱에서 사용할 수 있었다. 결론 xml없이 하는게 과연 성능상의 이슈는 없는지에 대한 의문. 코드 감추는건 가능할듯. 그러나 꽤 귀찮을 듯.

[Android] URL scheme - 주소창에서 앱실행, 앱간의 값 전달

뭐할때 쓰는 녀석이냐면 ㄱ. A앱에서 B앱을 호출하고 싶을때, ㄴ. 주소창에서 A앱을 실행시키고 싶을때, ㄷ. 1,2번을 하면서 parameter로 값을 전달하고 싶을때. 방법은 간단하다. 우선 andoridmanifest.xml을 열어서 해당 activity에 intent 필터를 추가 시키고, 아래처럼 내용으로 채워준다. <activity android:name=".ListViewActivity" android:label="@string/app_name"> <intent-filter>   <action android:name="android.intent.action.VIEW"/>    <category android:name="android.intent.category.DEFAULT"/>    <category android:name="android.intent.category.BROWSABLE" />    <data android:host="test2" android:scheme="bill" /> </intent-filter> </activity> 그리고 호출할때는 bill://test2 (스킴://호스트) 형식으로 하면 된다. 해석하면 bill://teset2를 주소창에 입력하면 ListViewActivity가 실행. 사실 이건 앱을 실행시킨다기보다는 해당 activity를 실행시키는 것이다. intent filter의 action하고 category를 왜저렇게 했는지 궁금하면 http://developer.android.com/training/basics/intents/filters.html 여기보면 나와있다. 일단 이렇게 만들고 안드로이드 브라우저에서 bill://test2를...