Внешняя служба Android из библиотеки (AAR, а не общая служба)

Я пытаюсь создать библиотеку Android, содержащую простой сервис. Например:

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, и я не смог найти ответ на свою проблему.

Служба Android в библиотеке

Также пробовали разные способы запуска службы (по действию и т. Д.), Но пока ничего хорошего.

Вся помощь приветствуется, и мои извинения, если я сделал злой дублированный вопрос.

Solutions Collecting From Web of "Внешняя служба Android из библиотеки (AAR, а не общая служба)"

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

 public class BaseService implements OtherLibraryInterface { ... } 

Вместо того, чтобы бросать ClassNotFoundException для OtherLibraryInterface , Android будет бросать именно это исключение для BaseService . Это очень сбивает с толку и заставляет нас думать, что с Сервисом что-то не так.

Добавление зависимостей OtherLibrary явно как зависимость от основного приложения решила эту проблему.