Файл манифеста проекта библиотеки Android

Я пытаюсь интегрировать приложение todo с открытым исходным кодом в свое основное приложение. Я сделал приложение todo как проект библиотеки и интегрировал manifest.xml, как указано в руководстве... но столкнулся с одной проблемой.

В моем файле манифеста проекта библиотеки он начинается с

<application android:name=".TodoApplication" android:icon="@drawable/todotxt_touch_icon" >

Как я могу интегрировать это в свой основной файл манифеста, потому что у меня уже есть имя приложения... Я интегрировал действия проекта библиотеки, но я не могу интегрировать эту строку, и из-за этого она не работает....

Найдите файл manifest.xml проекта библиотеки:

    <?xml version="1.0" encoding="utf-8"?>

<manifest package="com.todotxt.todotxttouch"
    android:versionName="0.7" android:versionCode="21"
    xmlns:android="http://schemas.android.com/apk/res/android">
    <!-- Warning 'is lower than the project target API level' should be ok -->

    <uses-sdk android:minSdkVersion="3" android:targetSdkVersion="4" />
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

    <application android:name=".TodoApplication" android:icon="@drawable/todotxt_touch_icon"
        android:label="@string/app_label" android:debuggable="true">

        <uses-configuration></uses-configuration>
        <supports-screens android:largeScreens="true"
            android:normalScreens="true" android:smallScreens="true"
            android:resizeable="true" android:anyDensity="true" />

        <activity android:name=".LoginScreen" android:label="@string/app_label"
            android:theme="@android:style/Theme.NoTitleBar"
            android:configChanges="keyboardHidden|orientation">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

        <activity android:name=".Filter" android:label="Filter"
            android:theme="@android:style/Theme.NoTitleBar" />
        <activity android:name=".Preferences" android:label="@string/set_preferences" />
        <activity android:name=".AddTask" android:label="@string/addtask"
            android:theme="@android:style/Theme.NoTitleBar"
            android:configChanges="orientation|keyboardHidden"
            android:windowSoftInputMode="adjustResize">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
            </intent-filter>
        </activity>

        <activity-alias android:name=".AddTaskShortcut"
            android:targetActivity=".AddTask" android:label="@string/shortcut_addtask_name">
            <intent-filter>
                <action android:name="android.intent.action.CREATE_SHORTCUT" />
                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
        </activity-alias>
        <activity-alias android:name=".AddTaskShare"
            android:targetActivity=".AddTask" android:label="@string/share_addtask_name">
            <intent-filter>
                <action android:name="android.intent.action.SEND" />
                <category android:name="android.intent.category.DEFAULT" />
                <data android:mimeType="text/plain" />
            </intent-filter>
        </activity-alias>
        <activity android:name=".HelpActivity"
            android:theme="@android:style/Theme.Translucent.NoTitleBar.Fullscreen" />
        <activity android:name=".TodoTxtTouch" android:theme="@android:style/Theme.NoTitleBar"
            android:configChanges="keyboardHidden|orientation">
            <intent-filter>
                <action android:name="android.intent.action.SEARCH" />
            </intent-filter>
            <meta-data android:name="android.app.searchable"
                android:resource="@xml/searchable" />
        </activity>

        <!-- Task list widget -->
        <receiver android:name=".TodoWidgetProvider" android:label="@string/app_label">
            <intent-filter>
                <action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
            </intent-filter>
            <intent-filter>
                <action android:name="com.todotxt.todotxttouch.APPWIDGET_UPDATE"/>
            </intent-filter>
            <meta-data android:name="android.appwidget.provider" android:resource="@xml/todo_widget_provider" />
        </receiver>

    </application>

    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission>

</manifest> 

Основная часть, в которой я застрял, связана с частью имени приложения... как я могу интегрировать имя приложения проекта библиотеки в мой основной манифест приложения, потому что у него уже есть имя приложения... поэтому я застреваю в этой части и он не работает из-за этого только потому, что выдает ошибку времени выполнения....

Я интегрировал все действия моего проекта библиотеки с их полным именем пакета в файлы манифеста основного приложения. кто-нибудь может указать мне, где я иду не так...


person user1013062    schedule 18.12.2011    source источник


Ответы (1)


Насколько я знаю, интеграция проекта библиотеки не требует изменения вашего манифеста. Просто создайте свой собственный проект и откройте проект, который хотите включить в отдельный проект.

В Eclipse вы можете щелкнуть правой кнопкой мыши свой проект, перейти к свойствам и проверить: Library-project. В собственном проекте вы должны зайти в свойства сборки и во вкладке проекта добавить туда свое Todo Application. Таким образом, приложение Todo создается одновременно с созданием собственного приложения.

РЕДАКТИРОВАТЬ (на основе комментариев): вы можете объявить действия, которые хотите использовать в своем манифесте. Имя приложения не требуется в вашем манифесте.

person Entreco    schedule 18.12.2011
comment
Вы также можете преобразовать существующий проект приложения в библиотеку. Для этого просто откройте свойства проекта и установите флажок «Библиотека». Другие проекты приложений теперь могут ссылаться на существующий проект как на проект библиотеки. - Действительно, все есть. - person Entreco; 19.12.2011
comment
Я сделал все это ... пожалуйста, прочитайте эту ссылку ... Я застрял в части интеграции манифеста xml, которая находится в последнем параграфе. - person user1013062; 19.12.2011
comment
У вас уже есть приложение Todo. Вам не нужно ничего менять в этом приложении, манифест уже есть, поэтому все действия, службы и т. д. уже определены. Просто добавьте проект Todo в свой новый проект, и все готово. - person Entreco; 19.12.2011
comment
Я решил проблему..... Я переименовал основной файл манифеста в имя проекта библиотеки. то есть: в моем основном файле манифеста это было раньше, как это приложение android name = app name имя моего проекта библиотеки было com.todotxt.todotxttouch.todoapplication. Я заменил имя приложения на указанное выше, и оно отлично работает. - person user1013062; 19.12.2011