android - 依赖性搞砸了 Flutter 中的 Android 应用程序构建

标签 android android-studio dart flutter

长话短说

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

一旦删除 url_launcher,我的应用程序就可以正常启动了再次。


全面

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

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

我在创建项目后更改了我的程序包名称,因为 Flutter 仍然有问题 :) 在创建向导中我输入了 $prefix.$name (这些只是变量;prefix 始终相同,另外两个也是如此;为了引用,请查看错误消息,我也将其插入。在我的第一个构建中,包名称变成了然后变成 $packagename.$projectname。我找到了解决方法:更改 Android src 目录中的代码目录名称,并更改 applicationId 中的 build.gradle 名称。

所以现在我的包名是$prefix.$name .我的 Android Studio 项目名称/文件夹仍然是 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 中的目录目录具有与 app 相同的子目录目录。我之所以提到这一点,是因为我不确定这是否是不受欢迎的行为。

最佳答案

我发现 through this answer我还必须更改 package <manifest 的属性AndroidManifest.xml 中的标签文件,我还需要更改 packageMainActivity.java本身。

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

关于android - 依赖性搞砸了 Flutter 中的 Android 应用程序构建,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50121319/

相关文章:

android - PopupWindow 中的 Horizo​​ntalScrollView

java - PHP:如何从同一 MYSQL 数据库的不同表中用 PHP 编写变量

flutter - Riverpod:有没有正确的方法来读取另一个StreamProvider中的StreamProvider?

dart - Dart 2和解析json

android - 如何在android中为每一行设置gridlayout的背景图片?

java - Android 应用程序在单击按钮时崩溃

android - AVLoadingIndicatorView 库在应用程序中不可见

java - OnClickListener 适用于 ArrayList 中的最后一个元素

android - 异常 : View does not have a navController set

dart - 从 dart 语言列表中过滤空值的最佳方法是什么