Я пытаюсь создать библиотеку Android, содержащую простой сервис. Например:Внешняя служба Android из библиотеки (AAR, а не общая служба)
public class BasicService extends Service {
public BasicService() {
Log.d("I", "work");
}
@Override
public IBinder onBind(Intent intent) {
return null;
}
}
я запустить службу следующим образом:
startService(new Intent(this, BasicService.class));
Служба компилируется в файл AAR и добавив, что к приложению Я получаю ClassNotFoundException.
Caused by: java.lang.ClassNotFoundException: Didn't find class "nl.company.example.library.Services.BasicService" on path: DexPathList[[zip file "/data/app/nl.example.aartest-1/base.apk"],nativeLibraryDirectories=[/vendor/lib, /system/lib]]
Мне не нужно связывать службу, так как приложение не должно связываться со службой. Мне также не нужен интерфейс helpl, так как я не хочу делиться сервисом с другими приложениями. Я знаю, что нужно объявить службу на стороне приложения (не библиотека), так что я сделал это следующим образом:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="nl.company.example.exampleApp"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="17"
android:targetSdkVersion="19" />
<application
android:settings... >
<service
android:name="nl.company.example.library.Services.BasicService"
android:enabled="true"
android:exported="true" />
</application>
</manifest>
Это проявляется в моей библиотеке:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="nl.company.example.library" >
<application/>
</manifest>
Я сделал некоторые исследования в Stackoverflow/Google, и я не смог найти ответ на свою проблему.
пытались также различные способы запуска службы (на действия и т.д.), но не хорошо до сих пор.
Вся помощь приветствуется, и мои извинения, если я сделал неправильный двойной вопрос.
Существует несоответствие между вашим классом 'BasicService' и сервисом, который вы фактически запускаете' SimpleService'. Может, проблема? Просто попробовал это в тестовом репо и, кажется, работает нормально. Я не объявляю службу в манифесте моей библиотеки, но я объявляю ее в манифесте моего приложения. Я запускаю службу точно так же, как и вы, и включаю библиотеку через локальный аран. –
Здравствуйте, jmols, извините, что это была ошибка, сделав анонимную проблему. Также добавлен манифест библиотек. Надеюсь, вы в состоянии помочь :) – jobbert
Ваш код мне кажется правильным. Автозаполнение работает правильно? (Таким образом, мы уверены, что зависимость включена правильно.) Какую версию плагина Gradle вы используете? Я использую 'com.android.tools.build: gradle: 1.3.0'. –