Поскольку сценарии Unity не могут работать в фоновом режиме при сборке Android, мне нужно было создать библиотеку Android, выполняющую код в службе Android.
Служба android вызывается правильно через единство и работает нормально.
Однако мне также нужен paho MqttAndroidClient внутри службы, который добавляется как зависимость maven в gradle библиотек.Это прекрасно работает при сборке приложения для Android через Android Studio, но при сборке в виде библиотеки и импорте в Unity я получаю следующее исключение:
Process: com.ar.mqttServer, PID: 19777
java.lang.RuntimeException: An error occurred while executing doInBackground()
at android.os.AsyncTask$3.done(AsyncTask.java:354)
at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:383)
at java.util.concurrent.FutureTask.setException(FutureTask.java:252)
at java.util.concurrent.FutureTask.run(FutureTask.java:271)
at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:245)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
at java.lang.Thread.run(Thread.java:764)
Caused by: java.lang.NoClassDefFoundError: Failed resolution of: Lorg/eclipse/paho/android/service/MqttAndroidClient;
at com.ar.ntripclient.NtripClient$NTRIPClientThread.doInBackground(NtripClient.java:92)
at android.os.AsyncTask$2.call(AsyncTask.java:333)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:245)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
at java.lang.Thread.run(Thread.java:764)
Caused by: java.lang.ClassNotFoundException: Didn't find class "org.eclipse.paho.android.service.MqttAndroidClient" on path: DexPathList[[zip file "/data/app/com.ar.mqttServer-vUyFnwrhL3g2gvDl5VRW_w==/base.apk"],nativeLibraryDirectories=[/data/app/com.ar.mqttServer-vUyFnwrhL3g2gvDl5VRW_w==/lib/arm, /data/app/com.ar.mqttServer-vUyFnwrhL3g2gvDl5VRW_w==/base.apk!/lib/armeabi-v7a, /system/lib]]
at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:171)
at java.lang.ClassLoader.loadClass(ClassLoader.java:379)
at java.lang.ClassLoader.loadClass(ClassLoader.java:312)
at com.ar.ntripclient.NtripClient$NTRIPClientThread.doInBackground(NtripClient.java:92)
at android.os.AsyncTask$2.call(AsyncTask.java:333)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:245)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
at java.lang.Thread.run(Thread.java:764)