Плагин flutter_downloader не работает над существующим проектом - PullRequest
0 голосов
/ 02 ноября 2019

Я хочу реализовать функцию загрузки в моем существующем приложении, но оно выдает исключение, и я не могу понять, почему.

Я недавно создал новый проект флаттера и установил плагин flutter_downloader, и он работает нормально, но когдаЯ реализую эту функцию таким же образом в моем существующем приложении, она выдает мне ошибку.

Трассировка стека находится здесь:

2019-11-02 13:11:44.655 13280-13280/com.example.app E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.app, PID: 13280
java.lang.IllegalStateException: registrar.activity() must not be null
    at co.paystack.flutterpaystack.FlutterPaystackPlugin$Companion.registerWith(FlutterPaystackPlugin.kt:18)
    at co.paystack.flutterpaystack.FlutterPaystackPlugin.registerWith(Unknown Source:2)
    at io.flutter.plugins.GeneratedPluginRegistrant.registerWith(GeneratedPluginRegistrant.java:30)
    at com.example.app.FlutterCustomApp.registerWith(FlutterCustomApp.java:10)
    at vn.hunghd.flutterdownloader.DownloadWorker.startBackgroundIsolate(DownloadWorker.java:124)
    at vn.hunghd.flutterdownloader.DownloadWorker.access$000(DownloadWorker.java:59)
    at vn.hunghd.flutterdownloader.DownloadWorker$1.run(DownloadWorker.java:97)
    at android.os.Handler.handleCallback(Handler.java:790)
    at android.os.Handler.dispatchMessage(Handler.java:99)
    at android.os.Looper.loop(Looper.java:164)
    at android.app.ActivityThread.main(ActivityThread.java:7000)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:441)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1408)

Это мой класс приложения:

public class FlutterCustomApp extends FlutterApplication implements PluginRegistry.PluginRegistrantCallback {
@Override
public void registerWith(PluginRegistry registry) {
    GeneratedPluginRegistrant.registerWith(registry);
}

}

И я также указал имя класса в файле AndroidManifest.xml.

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

  • compileSdkVersion: 28
  • compileSdkVersion: 21
  • targetSdkVersion: 28
  • версия Gradle: 3.5.1

1 Ответ

0 голосов
/ 02 ноября 2019

Поскольку движок флаттера необходим для связи с нативным андроидом, который зависит от жизненного цикла андроида (если вы посмотрите FlutterActivity ), реестр плагина должен начать регистрироваться на активности вместокласс приложения.

Вы должны вызвать регистрацию плагина на первом Splash Activity или BaseActivity onCreate, если нет других особых проблем или причин, таких как инициализация JNI или изменения конфигурации, связанные с движком Flutter:

class MainActivity: FlutterActivity() {
  override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    GeneratedPluginRegistrant.registerWith(this)
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...