Nativescript 6.1.1应用程序在--release模式下崩溃,在调试模式下工作

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 Vue应用程序将不再以发布模式运行

我最近将应用程序从5.3.0迁移到了6.1.1,一切看起来都很好。我做了几次更新,包括添加
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等)在结构上的差异。祝你好运!当你找到答案时,你应该把它贴出来。