2011-12-27 5 views
0

У меня есть проект андроида, который я хочу «клонировать» для второго аналогичного проекта, который отличается только одним файлом: это база данных sqlite (assets/mydata.sql).Реализация проекта библиотеки Android

Я перевернул исходный проект (reslib) в библиотеку и добавил его в свойства моего клона проекта (проект источника показывается в разделе «Библиотека проектов» как reslib.jar)

вещи, я m не уверен, как запустить основную деятельность в исходном проекте. Основной вид деятельности исходного проекта настраивает TabHost. Как запустить основной проект исходного проекта из моего проекта клонирования? Я начал вставлять код в «cloneActivity.java», чтобы запустить TabHost, но потом подумал, есть ли лучший способ.

+0

Любая конкретная причина, по которой вы выбрали библиотеку? Являются ли эти два проекта взаимозависимыми? Если нет, почему бы вам не переименовать проект и не изменить файлы? Когда вы загружаете это на рынок, так или иначе, это будет новый APK? – kosa

+0

Я пытаюсь использовать код между проектами. Создание общей общей библиотеки (проекта) было единственным способом найти общую кодовую базу между двумя проектами. – wufoo

+0

Тогда я сожалею, что у меня нет ответа. В моем случае я поддерживал две базы исходного кода. Кстати, это позволило мне добавить дополнительные функции в одно из приложений, которое не требуется для других. Я настоятельно рекомендую для вас тоже. Кто знает, в будущем вы можете столкнуться с такой же ситуацией. – kosa

ответ

1

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

Предположим, что у вашего исходного проекта есть имя пакета com.example.source, ваш зависимый проект имеет имя пакета com.example.dependent, а основной актив в вашем исходном проекте - MainActivity.java.

Тогда в AndroidManifest.xml в вашем зависимом проекте, вы бы что-то вроде следующих:

<application 
    android:icon="@drawable/logo" > 
    <activity 
    android:name="com.example.source.MainActivity" > 
    <intent-filter> 
     <action android:name="android.intent.action.MAIN" /> 
     <category android:name="android.intent.category.LAUNCHER" /> 
    </intent-filter> 
    </activity> 

    <!-- possibly lots more activities and other declarations --> 

</application> 

Важных замечаний: В манифестах как для вашего проекта источника и зависимого проекта, вы должны сделать обязательно перечислите все действия, разрешения и т. д. Если позже вы добавите активность в исходный проект, вам также нужно будет добавить его в манифест зависимого проекта.

Кроме того, вам нужно будет скопировать что-либо в каталоге активов исходного проекта в зависимый проект — и не забудьте также синхронизировать его. (Это верно по состоянию на июнь 2012 года, я слышал, что некоторые будущие версии Android устройств для сборки, скорее всего, решить эту головную боль.)

И, наконец, если вы используете Eclipse, для создания проектов, это создаст по умолчанию макет main.xml. Поскольку ресурсы в зависимом проекте переопределяют ресурсы в исходном проекте, убедитесь, что это не отключает вас.

+0

Спасибо! Я закончил создание активности в зависимом проекте, который запустил запуск Activity в проекте библиотеки. Не лучшее, но все, что я мог понять в то время. Мне нравится этот путь намного лучше! – wufoo

Смежные вопросы