长话短说
添加后 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
中的标签文件,我还需要更改 package
在 MainActivity.java
本身。
我想知道在不使用 url_launcher
时它是如何工作的.我的猜测是工作设置在 build
中仍然很明显。文件夹,即在已经构建的 .class
中和 .dex
文件。
关于android - 依赖性搞砸了 Flutter 中的 Android 应用程序构建,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50121319/