无法为 Flutter 应用程序生成签名的 apk
Posted
技术标签:
【中文标题】无法为 Flutter 应用程序生成签名的 apk【英文标题】:Can't generate signed apk for Flutter app 【发布时间】:2019-11-10 00:56:31 【问题描述】:我尝试在 Windows 中使用 android Studio 为我的 Flutter 应用程序生成签名 apk,但出现错误:
Error:Internal error: (java.lang.ClassNotFoundException) com.google.wireless.android.sdk.stats.IntellijIndexingStats$Index
java.lang.ClassNotFoundException: com.google.wireless.android.sdk.stats.IntellijIndexingStats$Index
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at com.intellij.util.indexing.counters.IndexCounters.<clinit>(IndexCounters.java:34)
at com.intellij.util.indexing.impl.MapReduceIndex.<init>(MapReduceIndex.java:86)
at org.jetbrains.jps.backwardRefs.index.CompilerReferenceIndex$CompilerMapReduceIndex.<init>(CompilerReferenceIndex.java:214)
at org.jetbrains.jps.backwardRefs.index.CompilerReferenceIndex.<init>(CompilerReferenceIndex.java:73)
at org.jetbrains.jps.backwardRefs.JavaCompilerBackwardReferenceIndex.<init>(JavaCompilerBackwardReferenceIndex.java:12)
at org.jetbrains.jps.backwardRefs.JavaBackwardReferenceIndexWriter.initialize(JavaBackwardReferenceIndexWriter.java:74)
at org.jetbrains.jps.backwardRefs.JavaBackwardReferenceIndexBuilder.buildStarted(JavaBackwardReferenceIndexBuilder.java:40)
at org.jetbrains.jps.incremental.IncProjectBuilder.runBuild(IncProjectBuilder.java:358)
at org.jetbrains.jps.incremental.IncProjectBuilder.build(IncProjectBuilder.java:178)
at org.jetbrains.jps.cmdline.BuildRunner.runBuild(BuildRunner.java:138)
at org.jetbrains.jps.cmdline.BuildSession.runBuild(BuildSession.java:302)
at org.jetbrains.jps.cmdline.BuildSession.run(BuildSession.java:135)
at org.jetbrains.jps.cmdline.BuildMain$MyMessageHandler.lambda$channelRead0$0(BuildMain.java:229)
at org.jetbrains.jps.service.impl.SharedThreadPoolImpl.lambda$executeOnPooledThread$0(SharedThreadPoolImpl.java:42)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
但我可以为我的本机 (Java) android 应用程序创建签名的 apk,而不会出现任何错误。 然后我尝试使用 linux 生成 apk,它运行良好。是什么导致了这个错误?
【问题讨论】:
您在 Windows 和 Linux 上使用的是哪个版本的 Android Studio? Android Studio 3.4.1 3.5 beta 将解决这个问题 - developer.android.com/studio/preview/index.html 它没有用。我得到同样的错误。 您是否尝试过通过命令提示符生成它?喜欢这里***.com/a/60699042/3894304 【参考方案1】:同样的问题, 我尝试使用firebase_messaging,但之后我决定不使用firebase_messaging,所以我删除了插件,但当时我忘了从gradle文件中删除它我遇到了同样的问题..我这样修复了......
交叉检查您正在使用的所有服务与在 gradle 中添加的服务...并删除未使用的行或依赖项...。这可能会解决问题。
【讨论】:
我尝试了你所说的一切,但错误不会消失。但我找到了一种从命令提示符生成签名 apk 的方法。 @ÁlvaroAgüero 我按照本教程进行操作:flutter.dev/docs/deployment/android 并将您的 .jks 粘贴到 /android/app/ 中并在 key.properties 中代替 storeFile 只需输入您的 key_name.jks @bimsina 谢谢我得到了捆绑包但没有得到apk,我觉得即使在flutter上他们也必须修复很多东西【参考方案2】:尝试检查您的 key.properties
文件是否具有正确的密钥凭据和路径
举例
storePassword=pass
keyPassword=pass
keyAlias=key0
storeFile=A:\\Your Path\\BongoFlix\\key.jks
然后从 Build>Flutter>Build APK 生成一个签名的 APK
在此处阅读有关发布版本的更多信息 https://flutter.dev/docs/deployment/android 正确设置你的gradle
【讨论】:
【参考方案3】:自从迁移到 IntelliJ 以来,android studio 完全是 DIASTER... 这个工具完全是未经测试的垃圾
错误:内部错误:(java.lang.ClassNotFoundException) com.google.wireless.android.sdk.stats.IntellijIndexingStats$Index
一直都是
【讨论】:
请不要回答评论/问题。可以理解的是,您的代表太低而无法发表评论,但这并不意味着应该使用答案来使 cmets 作为替代方案。最好把它删掉。以上是关于无法为 Flutter 应用程序生成签名的 apk的主要内容,如果未能解决你的问题,请参考以下文章
无法上传 targetSdkVersion 为 30 的签名 apk
无法生成签名的 apk - TaskExecutionException 失败