Android: Как использовать «uses-library»?

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

В Eclipse я пишу их как два отдельных Android-проекта. В проекте клиентского интерфейса я объявляю проект API в его пути сборки (Project -> Properies -> Java Build Path -> Projects).

При развертывании проекта клиентского интерфейса через Eclipse (на моем фактическом телефоне G1) он автоматически развертывает проект API (упакованный в APK).

Однако при запуске приложения клиентского интерфейса я ударяю эту ошибку:

Uncaught handler: thread main exiting due to uncaught exception java.lang.VerifyError: myapp.android.testuiclient.Main at java.lang.Class.newInstanceImpl(Native Method) at java.lang.Class.newInstance(Class.java:1472) at android.app.Instrumentation.newActivity(Instrumentation.java:1097) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2316) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2417) at android.app.ActivityThread.access$2100(ActivityThread.java:116) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1794) at android.os.Handler.dispatchMessage(Handler.java:99) at android.os.Looper.loop(Looper.java:123) at android.app.ActivityThread.main(ActivityThread.java:4203) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:521) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:791) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:549) at dalvik.system.NativeStart.main(Native Method) 

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

Вопрос в том, что я должен поставить под андроид: name for uses-library? Руководство Dev говорит «имя библиотеки», но как называется библиотека? (Я имею в виду, что в моем приложении «API» я нигде не объявлял ни одного имени библиотеки.)

Solutions Collecting From Web of "Android: Как использовать «uses-library»?"

Я не верю, что <uses-library> здесь имеет значение.

Ваши варианты:

  1. Реализовать свою «библиотеку» как JAR, которая будет включена в другие проекты во время компиляции. Пока ваша библиотека не пытается определить ресурсы, вы находитесь в прекрасной форме. См. Проекты CWAC на моей странице github для образцов того, как это установить.

  2. Реализовать свою «библиотеку» как отдельный APK, содержащий удаленную службу, определенную с помощью AIDL. Не пытайтесь смешивать свои пути сборки, как вы сейчас делаете в Eclipse, а скорее следуете правилам AIDL и каждый проект использует общее определение AIDL. Вам также необходимо будет настроить пользователей для установки обоих APK.

  3. Внесите свою «библиотеку» в отдельный APK, содержащий ContentProvider . Не пытайтесь сочетать свои пути сборки, как вы сейчас делаете в Eclipse, а скорее следуете правилам ContentResolver и предоставляете клиенту доступ к провайдеру через ContentResolver и определенный Uri. Вам также необходимо будет настроить пользователей для установки обоих APK.