Nativescript 6.1.1应用程序在--release模式下崩溃,在调试模式下工作
我有一个Nativescript Vue应用程序将不再以发布模式运行 我最近将应用程序从5.3.0迁移到了6.1.1,一切看起来都很好。我做了几次更新,包括添加Nativescript 6.1.1应用程序在--release模式下崩溃,在调试模式下工作,nativescript,nativescript-vue,Nativescript,Nativescript Vue,我有一个Nativescript Vue应用程序将不再以发布模式运行 我最近将应用程序从5.3.0迁移到了6.1.1,一切看起来都很好。我做了几次更新,包括添加nativescript admob和nativescript购买以及相应的功能。同样,在ios和android上调试应用程序时,一切都很好 我还能够成功地为android构建发布模式,并使用iOS存档。然而,当我运行android上生成的应用程序时,它会在启动时立即崩溃 以下是包含my package.json的要点,其中更改了应用程序
nativescript admob
和nativescript购买
以及相应的功能。同样,在ios和android上调试应用程序时,一切都很好
我还能够成功地为android构建发布模式,并使用iOS存档。然而,当我运行android上生成的应用程序时,它会在启动时立即崩溃
以下是包含my package.json的要点,其中更改了应用程序ID等:
下面是一个要点,其中包含每次应用程序尝试启动时抛出的logcat stacktrace:
以下是我正在运行以构建的脚本:
rm -rf platforms/android
rm -rf node_modules
npm i
tns build android --env.snapshot --env.sourceMap --bundle --clean --release --key-store-*
我不知道如何继续对此进行故障排除,也不知道堆栈跟踪可能指向什么
如果有人对如何从日志中获取更多信息或问题可能是什么提出建议,我将非常感谢您的帮助。提前谢谢
编辑:
我尝试使用
--env.snapshot
标志构建它,现在抛出了一个错误,该错误表示无法加载文件./app.css!您可能需要在内部注册。/app/vendor.ts。这个项目使用的是scss,可能有什么问题?奇怪的是,这只是发布模式中的一个问题,样式在调试中非常有效…所以我在这里缩小了问题的范围。这是在缩小/混淆,我正在做这是详细的Android
以下是我的app.gradle
中的当前版本
显然导致问题的buildTypes属性被注释掉:
android {
defaultConfig {
minSdkVersion 21
generatedDensities = []
applicationId = "com.willweb.clicker"
}
aaptOptions {
additionalParameters "--no-version-vectors"
}
/* buildTypes { // THIS CAUSES RELEASE MODE ERROR ON APP LAUNCH
release {
// Enables code shrinking, obfuscation, and optimization for only
// your project's release build type.
minifyEnabled true
// Enables resource shrinking, which is performed by the
// Android Gradle plugin.
shrinkResources true
// Includes the default ProGuard rules files that are packaged with
// the Android Gradle plugin. To learn more, go to the section about
// R8 configuration files.
proguardFiles getDefaultProguardFile(
'proguard-android-optimize.txt'),
'proguard-rules.pro'
}
} */
}
幸运的是,删除它确实允许我在发布模式下构建和运行应用程序,但不幸的是,它的文件大小要大得多
几年前就有关于proguard的信息,但没有更新
据他们在github的团队称,NativeScript提供了优化应用程序大小和代码的工具,如Uglifing、AOT(用于角度)、快照(仅用于MAC上的Android版本)和Webpack(默认启用)。此构建的一个示例是:
tns run android --env.uglify --env.aot --env.snapshot --releae <release-params-follows-here>
tns运行android--env.uglify--env.aot--env.snapshot--releae
日志是否使用android设备监视器?如果没有,您可以使用它并尝试显示整个崩溃日志。您附加的日志似乎是调试日志,不包含有关错误/异常的任何详细信息。我发布的日志是使用在模拟设备上运行的Android Studio中的logcat查看器捕获的。我不熟悉安卓设备监视器,但谷歌文档说它已被弃用()。你能告诉我更多关于这个工具的信息吗,以便从日志@Manoj获取更多信息?@Manoj这里有一个更新的堆栈跟踪,可能还有更多信息:nativescript购买现在是proplugins的一部分。在中,它声明只支持Nativescript 6之前的版本。我不确定这是不是你的错误。伙计,我希望我能帮助你,因为我遇到了类似的问题。在我的例子中,我使用的是nativescript angular,而--env.aot解决了我的问题。您可以尝试在nativescript 6上创建一个新项目,并查找与您的项目(AndroidManifest、Gradle等)在结构上的差异。祝你好运!当你找到答案时,你应该把它贴出来。