Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/205.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Flatter_downloader插件不适用于现有项目_Java_Android_Flutter_Download - Fatal编程技术网

Java Flatter_downloader插件不适用于现有项目

Java Flatter_downloader插件不适用于现有项目,java,android,flutter,download,Java,Android,Flutter,Download,我想在我现有的应用程序中实现下载功能,但它引发了一个异常,我不知道为什么 我刚刚创建了一个新的颤振项目并安装了颤振下载插件,它工作正常,但当我在现有应用程序中以相同的方式实现该功能时,它会给我带来一个错误 堆栈跟踪如下所示: 2019-11-02 13:11:44.655 13280-13280/com.example.app E/AndroidRuntime: FATAL EXCEPTION: main Process: com.example.app, PID: 13280 java.lan

我想在我现有的应用程序中实现下载功能,但它引发了一个异常,我不知道为什么

我刚刚创建了一个新的颤振项目并安装了颤振下载插件,它工作正常,但当我在现有应用程序中以相同的方式实现该功能时,它会给我带来一个错误

堆栈跟踪如下所示:

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
文件中指定了类名

但当我启动下载任务时,会抛出上述异常,应用程序会崩溃。我还是不明白为什么会这样

  • 编译版本:28
  • 编译版本:21
  • targetSdkVersion:28
  • 渐变版本:3.5.1

由于需要使用flatter引擎与依赖于android生命周期的本机android进行通信(如果您查看),因此插件的注册表应该开始在活动上注册,而不是在应用程序类上注册

如果没有其他具体问题或原因,如JNI初始化或与颤振引擎相关的配置更改,则应在第一次启动活动或BaseActivity onCreate时调用插件注册:

class MainActivity: FlutterActivity() {
  override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    GeneratedPluginRegistrant.registerWith(this)
  }
}

那么,这个新创建的颤振项目是如何工作的,而不是现有的项目?我在我的新旧项目中遵循了相同的文档,新项目有效,但旧项目有效。两个项目都支持AndroidX,这很奇怪。只是想确认一下,在您的flatter项目中自动生成的android项目是使用应用程序类注册的,还是您已经尝试使用自定义应用程序类在flatter项目中运行,并且成功了?通常情况下,项目创建应该自动注册到我粘贴的活动类上。在成功的项目中,我手动创建了应用程序类,并在AndroidManifest.xml中指定了其名称。在失败的项目中,我尝试了两种方法。其中一种方法与我前面提到的方法相同。下一步是使用相同的MainActivity类来实现上述方法。这两个错误都失败了。您介意粘贴另一个错误日志吗?我只是想比较一下这是否有任何提示。