Как вы ссылаетесь на классы в проекте библиотеки Android - PullRequest
1 голос
/ 15 ноября 2011

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

У меня есть класс ( не активность), который расширяет Application.Я переместил этот класс в свой библиотечный проект и хочу использовать его для основного класса приложения в моих двух производных приложениях (работает нормально, когда непосредственно в основном приложении).

Скажем, моя библиотека my.project.library и мояприложение, использующее библиотеку: my.project В манифесте для my.project я указал следующее:

<application android:name="my.project.library.AppClass">

Он прекрасно компилируется и развертывается, но когда я пытаюсь его запустить, онпринудительное закрытие со следующим исключением:

11-15 03:14:25.707: E/AndroidRuntime(16800): java.lang.RuntimeException: Unable to instantiate application my.project.library.AppClass: java.lang.ClassNotFoundException: my.project.library.AppClass in loader dalvik.system.PathClassLoader[/data/app/my.project.apk]

Из чертежей, которые я также импортировал из библиотеки, кажется, что содержимое библиотеки вставляется в основное приложение.Поэтому я попытался изменить свой манифест на:

<application android:name="my.project.AppClass">

, но я все еще получаю ту же ошибку.

Как я могу ссылаться на класс в библиотеке как на класс приложения в основном приложении?

Ответы [ 2 ]

1 голос
/ 15 ноября 2011

Ваша исходная ссылка была правильной.

То есть:

<application android:name="my.project.library.AppClass">

Звучит так, будто вы не ссылаетесь на библиотечный проект должным образом, см. http://developer.android.com/guide/developing/projects/projects-eclipse.html в разделе Ссылка на библиотечный проект.

1 голос
/ 15 ноября 2011

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

<uses-library android:name="my.project.library" />
...