본문 바로가기

2008년 6월 이전의 기록/Development

Android SDK m5 Changes - AndroidManifest.xml

안드로이드 SDK m5를 설치하고 기존에 만들어 뒀던 샘플을 실행해 보려 하니 오류가 난다.
클래스 내의 오류는 대부분 삭제된 메서드 때문에 나는 것이었는데,

AndroidManifest.xml에도 오류 표시가 뜬다.

샘플 프로그램은 안드로이드 SDK에 포함되어 있는 sample 코드 중 노트패드 어플리케이션을 보고 따라 만든 것이었다.

[m3에서의 AndroidManifest.xml]

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.google.android.demo.notepad1">
    <application android:icon="@drawable/icon">
        <activity class=".Notepadv1" android:label="@string/app_name">
            <intent-filter>
                <action android:value="android.intent.action.MAIN" />
                <category android:value="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity  class=".NoteEdit" android:label="@string/edit_note"/>
    </application>
</manifest>

문제가 되는 부분은 위의 파랗게 표시한 부분이다.

안드로이드 SDK m3 -> m5에서 바뀐 부분은 아래 페이지에서 참조하면 된다.


  • class 파라미터 => android:name 으로 변경해야 한다.
  • android:value 파라미터 => android:name 으로 변경해야 한다.
  • android:id 파라미터 => android:name 으로 변경해야 한다.
  • <intent-filter> 안의 <type>, <scheme>, <authority>, <path> 태그는 <data> 태그로 변경하고 android:mimeType, android:scheme, android:host, android:path 파라미터로 대신한다.
    • <type android:value="..."> => <data android:mimeType="...">
    • <scheme android:value="..."> => <data android:scheme="...">
    • <authority android:value="..."> => <data android:host="...">
    • <path android:value="..."> => <data android:path="...">

위 오류가 났던 AndroidManifest.xml은 아래와 같이 고치면 된다.


[수정된 AndroidManifest.xml]

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.google.android.demo.notepad1">
    <application android:icon="@drawable/icon">
        <activity android:name=".Notepadv1" android:label="@string/app_name">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity  android:name=".NoteEdit" android:label="@string/edit_note"/>
    </application>
</manifest>