依赖关系搞砸了Flutter

时间:2018-05-01 17:53:04

标签: android android-studio dart flutter

TL; DR

url_launcher添加到我的pubspec后,我再也无法在Android中启动我的应用程序了。在开始时,我在Logcat中获得以下输出:Didn't find class "$prefix.$projectname.MainActivity" on path: DexPathList[[zip file "/data/app/...,其中$prefix.$projectname不是正确的包,因为我将其更改为$prefix.$name,其中name是其他字符串。< / p>

我再次删除url_launcher后,我的应用程序就会正常运行。

综合

仅向我的pubspec.yaml文件添加 url_launcher时,我的应用程序无法启动 Android 。我甚至不必在我的代码中使用它。

经过进一步调查后,我在Android的 Logcat 中找到了一条日志消息:Didn't find class "$prefix.$projectname.MainActivity" on path: DexPathList[[zip file "/data/app/...。这就是错误的起源!

我在创建项目之后更改了我的包名,因为Flutter仍然是错误的:)在创建向导中我键入了$prefix.$name这些是只是变量; prefix总是相同的,另外两个也是相同的;作为参考,请查看错误消息,我也将其插入。在我的第一次构建时,包名称变为{ {1}}然后。我找到了解决方法:更改Android $packagename.$projectname目录中的代码目录名称,并更改src中的applicationId名称。

现在我的包名是build.gradle。我的 Android Studio 项目名称/文件夹仍为$prefix.$name。在projectname中没有url_launcher,一切正常,但在添加目录时会创建如下目录:

没有pubspec

url_launcher

添加project/build/app: -generated -intermediates -outputs -tmp 其他目录(url_launcher除外)突然出现在app目录中:

build

project/build/app: -generated -intermediates -outputs -tmp project/build/url_launcher: -generated -intermediates -outputs -tmp 目录中的url_launcher目录与build目录具有相同的子目录。我只是提到这一点,因为我不确定这是否是不受欢迎的行为。

1 个答案:

答案 0 :(得分:0)

当我发现through this answer时,我还必须更改package文件中<manifest标记的AndroidManifest.xml属性,我还需要更改{{1}在package本身。

我想知道在不使用MainActivity.java时它是如何工作的。我的猜测是url_launcher文件夹中的工作设置仍然很明显,即在已构建的build.class文件中。