如何解决如何在build.gradle中添加调试符号
我已经创建了Flutter应用程序的android版本。
然后,我创建了一个内部测试版本。它显示警告
此应用程序捆绑包包含本机代码,并且您尚未上传调试 符号。我们建议您上传一个符号文件以使当机 和ANR更易于分析和调试。
基本上,我要做的是根据显示的链接在build.gradle文件中添加以下内容。
android.buildTypes.release.ndk.debugSymbolLevel = { SYMBOL_TABLE | FULL }
我认为这是他们正在谈论的android / app / build.gradle。
不确定要在该文件的确切位置添加此行。
有人可以指出在何处添加此行吗?
解决方法
要使用docs中编写的ndk debugSymbolLevel选项,您需要一个Android gradle插件 4.1或更高版本。在撰写本文时,最新的4.1版本是4.1.0
您还需要安装ndk and cmake for android studio。
在您的android build.gradle中,您需要设置android gradle插件版本4.1.0:
buildscript {
...
repositories {
google()
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:4.1.0'
...
}
然后在android / app build.gradle中添加:
...
android {
...
ndkVersion "21.3.6528147" # you see the ndk version in the android studio sdk-manager
...
buildTypes {
release {
...
ndk {
debugSymbolLevel 'SYMBOL_TABLE'
}
}
}
}
然后,当您运行:flutter build appbundle
时,它应该会在一段时间后用两倍大的附件完成。
在app / build.gradle中有两个地方,您可以在其中指定调试符号的绑定。如果您使用android.defaultConfig.ndk.debugSymbolLevel
,它将应用于所有构建类型(即调试和发布构建)。另一方面,如果您使用android.buildTypes.release.ndk.debugSymbolLevel
,它将仅适用于您的发行版。
这些选项必须按照您的正确猜测添加到您的app/build.gradle
文件中。当您看到一个以点分符号表示的build属性时,它实际上对应于build.gradle
中的嵌套块,看起来像这样:
android {
compileSdkVersion 28
defaultConfig {
applicationId 'com.example.foo'
minSdkVersion 23
targetSdkVersion 28
versionCode 42
versionName "4.0.2"
ndk {
debugSymbolLevel 'SYMBOL_TABLE'
}
}
// Rest of the file
}
HTH
,使用当前可用的Android版本4.1及更高版本4.1 RC 3和4.2 Canary 13可用,并且类似地使用com.android.tools.build:gradle 4.1及更高版本,您可以搜索合适的版本from here >
然后在您的应用程序build.gradle文件中的android-> defaultConfig中使用此行
ndk { debugSymbolLevel 'FULL' }
,
如果没有任何解决方案,您还可以从 Android Studio 的项目模板创建示例 JNI 应用程序。构建它并检查它是否构建成功并安装在设备上。
我已经检查了它的应用 build.gradle,检查我的 Flutter 的 build.gradle 并添加了它以使其工作:
defaultConfig {
// append below:
externalNativeBuild {
cmake {
cppFlags "-std=c++17"
}
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。