fle*_*epp 81 google-play android-studio flutter
当我想向 Playstore 发布新的 Flutter 应用程序包时。我收到此错误消息:“此 App Bundle 包含本机代码,但您尚未上传调试符号。我们建议您上传符号文件,以便更轻松地分析和调试崩溃和 ANR。” 我找不到任何方法来解决这个问题。我是 flutter 的新手,发布应用程序并且有点绝望......任何帮助都会很棒。
当我按照https://developer.android.com/studio/preview/features#native-crash 中的建议将“android.defaultConfig.ndk.debugSymbolLevel = 'FULL'”(第 1 行)添加到 app/build.gradle 时-符号化。我在 Android Studio 终端中收到此错误。我使用这个命令“flutter build appbundle”。
终端错误:FAILURE:构建失败,出现异常。
其中:构建文件 'C:\Users\filip\AndroidStudioProjects\ehbo\android\app\build.gradle' 行:1
出了什么问题:评估项目“:app”时出现问题。
无法获取类型为 org.gradle.api.Project 的项目“:app”的未知属性“android”。
尝试:使用 --stacktrace 选项运行以获取堆栈跟踪。使用 --info 或 --debug 选项运行以获得更多日志输出。使用 --scan 运行以获得完整的见解。
在https://help.gradle.org获取更多帮助
BUILD FAILED in 3s Running Gradle task 'bundleRelease'... Running Gradle task 'bundleRelease'... Done 4,3s Gradle task bundleRelease failed with exit code 1
小智 217
重现后续步骤,此警告将会消失
[YOUR_PROJECT]\build\app\intermediates\merged_native_libs\release\out\lib对于某些人来说,路径可能
[YOUR_PROJECT]\build\app\....并不[YOUR_PROJECT]\app\build\....像上面提到的那样。
注意里面有3个文件夹
[请注意,我没有压缩 ./lib 文件夹]
。
最新更新,对于我们来说(2023 年 11 月 8 日),该文件夹存在于 [YOUR_PROJECT]\build\app\intermediates\merged_native_libs\release\out\lib 中
Sha*_*kle 39
在上传调试符号文件之前,您必须使用 Android Gradle 插件版本 4.1 或更高版本。
看起来它只会随 Android Studio 4.1 一起提供,因为我现在只能自动获得 Gradle 4.0.0。
所以我建议你返回经典的 Play 控制台,它会让你通过 :)
Sha*_*kle 27
如果说 Flutter,看起来 Flutter 团队需要为 NDK 更改一些源文件,因为它不知道从哪里生成调试符号。
这是一个问题线程:https : //github.com/flutter/flutter/issues/60240
设置步骤如下:
小智 26
您可以通过转到build\app\intermediates\merged_native_libs\release\out\libFlutter 项目内部来制作这些 zip 文件
并将文件夹压缩到symbols.zip,现在将其上传到 google play console
Pra*_*ani 19
根据Play 管理中心上的以下消息,Shakle给出的答案将没有用。
旧版 Play 管理中心将于 2020 年 11 月 2 日停用您已经在使用新版 Play 管理中心,因此您无需执行任何操作。如果您想最后一次检查它们,一些功能将消失。
这只是一个警告,没有别的。前进吧。
如果您不想收到任何警告,请转到此链接并按照以下步骤操作:
https://support.google.com/googleplay/android-developer/answer/9848633?hl=en
您可以按原样使用新版本的Play 商店。
小智 9
我有类似的问题。真正对我有帮助的是:
ndkVersion <ndkVersion>
ndk {
debugSymbolLevel 'FULL'
}
Run Code Online (Sandbox Code Playgroud)
到应用程序/build.gradle
我的最后build.gradle:
...
android {
compileSdkVersion 30
defaultConfig {
applicationId "com.example.app"
minSdkVersion 21
targetSdkVersion 30
versionCode 28
versionName "1.0.59"
ndkVersion "23.1.7779620"
ndk {
debugSymbolLevel 'FULL'
}
}
buildTypes {
release {
minifyEnabled true
shrinkResources true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
configurations {
compile.exclude group: 'com.google.zxing'
}
}
...
Run Code Online (Sandbox Code Playgroud)
我希望这会对您有所帮助并节省您的时间
如果您想解决此警告错误:此应用程序包包含本机代码,并且您尚未上传调试符号。我们建议您上传符号文件,以便更轻松地分析和调试崩溃和 ANR。确保还安装了 CMake
如果您的 gradle 版本高于 4.0,则会发生这种情况将此代码放入您的build.gradle文件中
android {
compileSdkVersion 28
defaultConfig {
applicationId 'com.example.myproject'
minSdkVersion 21
targetSdkVersion 28
versionCode 1
versionName "1.0.0"
ndk {
debugSymbolLevel 'FULL'
}
}
Run Code Online (Sandbox Code Playgroud)
简单的方法,转到 \build\app\intermediates\merged_native_libs\release\out\lib ,你会找到 3/4 个文件夹,压缩这些文件夹,从发布选项上传此 ZIP(上传符号文件)。捆绑审核后警告将消失。
您可以将以下内容添加到您的app\build.gradle文件中,而不是创建和上传 zip 文件:
buildTypes {
debug {
// This is just here for local testing and is optional.
firebaseCrashlytics {
nativeSymbolUploadEnabled true
unstrippedNativeLibsDir file("build/app/intermediates/merged_native_libs/debug/out/lib")
}
ndk {
debugSymbolLevel 'SYMBOL_TABLE'
}
}
release {
// ..
firebaseCrashlytics { // Insert this
nativeSymbolUploadEnabled true
unstrippedNativeLibsDir file("build/app/intermediates/merged_native_libs/release/out/lib")
}
ndk {
// replace with 'FULL' if you need more info,
// but note that it will increase the file size of your appbundle dramatically.
debugSymbolLevel 'SYMBOL_TABLE'
}
}
}
Run Code Online (Sandbox Code Playgroud)
以下是一些供参考的文档: https://firebase.google.com/docs/crashlytics/ndk-reports#upload-symbols-external-dependency
如果您不清楚如何设置本机符号的自动上传,请尝试添加以下内容:
buildTypes { ... } // Your build types from the above snippet.
tasks.whenTaskAdded { task ->
if (task.name.startsWith('assemble') && task.name != "assembleReleaseAndroidTest"
&& task.name != "assembleDebugAndroidTest") {
String taskName = "uploadCrashlyticsSymbolFile" + task.name.substring('assemble'.length())
task.finalizedBy taskName
doFirst {
println "Running Gradle task '$taskName'..."
}
}
}
Run Code Online (Sandbox Code Playgroud)
有关构建 gradle 任务的更多信息: https ://docs.gradle.org/current/userguide/tutorial_using_tasks.html
另外,请确保您的 IDE 的 SDK 管理器中安装了 NDK 和 CMAKE。
希望有帮助!
| 归档时间: |
|
| 查看次数: |
44229 次 |
| 最近记录: |