如果我设置了 Firebase,nativescript 应用程序的安装将成功,但不会运行

Posted

技术标签:

【中文标题】如果我设置了 Firebase,nativescript 应用程序的安装将成功,但不会运行【英文标题】:If I set up the Firebase, the install of nativescript app will be successful, but won't run 【发布时间】:2021-09-15 08:15:22 【问题描述】:

我对 android 了解不多。 我使用的是 nativescript-vue,nativescript 是 8.x 版本。 当我第一次创建 ns-vue 模板并运行“ns run android”或“ns debug android”命令时,应用程序安装在连接的设备上并自动运行。 但是,如果我在设置 Firebase 后输入“ns run android”,安装会成功,但应用程序不会运行。 运行“ns debug android --debug-brk”结果是一样的,控制台上也没有出现错误。 我刚刚创建了 Firebase 项目并按照规定的流程进行操作。

我所做的 Firebase 设置流程:

    我更改了文件“App_Resources/Android/src/main/AndroidManifest.xml”中的包值。 火力基地:“com.xx.xx” AndroidManifest.xml 之前:"\\PACKAGE\\" AndroidManifest.xml 之后:“com.xx.xx”

    我下载了“Google-services.json”并将其复制到“platforms/android/app”文件夹中。

    我将 applic plugin: 'com.Google.gms.Google-services' 添加到“App_Resources/Android/app.gradle”的第一行并注入了两个依赖项。 实现平台('com.google.firebase:firebase-bom:28.2.0') 实施 'com.google.firebase:firebase-analytics'

    我从“platforms/android/build.gradle”添加了类路径“com.Google.gms:Google-services:4.3.8”。

    当我运行“ns run android”或“ns run debug”命令时,没有出现错误,并且显示“Successfully installed on device”日志,但应用程序没有运行。

即使我启动应用程序也不会发生任何事件。 我创建了@loaded 事件调用警报函数并用 try-catch 短语包装它,但我看不到任何错误日志或警报。

我的尝试:

    ns 运行 android --clean ns 运行调试 --debug-brk ns build --release --aab --copy-to=[path] → aab to apks → install pak → no alert ns 干净 尝试连接到实际设备,关闭 wifi。 把它转到模拟器。 (API 30) 我创建了一个新项目并尝试了同样的方法,但结果没有改变。 之后,我将 app.gradle、build.gradle 恢复到原始状态并删除了 Google-services.json 文件,但应用程序没有自动运行。

我错过了什么?

ps。我知道有一个 nativescript-firebase 插件。 +我用 ns create my-blank-vue --template @nativescript/template-blank-vue 创建了一个模板。

【问题讨论】:

【参考方案1】:

终于找到问题了。

问题: 我更改了文件“App_Resources/Android/src/main/AndroidManifest.xml”中的包值。 火力基地:“com.xx.xx” AndroidManifest.xml 之前:"__PACKAGE__" AndroidManifest.xml 之后:“com.xx.xx”

但是 Nativescript 文档: NativeScript CLI 构建系统会将它们设置为 platforms/android/src/main/AndroidManifest.xml 生成项目中的包属性。在 app/App_Resources/Android/AndroidManifest.xml 中,它将使用占位符:package="__PACKAGE__"不要在那里修改包属性。

已解决:

    我像这样还原了文件App_Resources/Android/src/main/AndroidManifest.xmlpackage="__PACKAGE__"

    platforms/android/src/main/AndroidManifest.xml更新包值:<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.company.app" ...>

    将与包名相同的applicationId属性添加到App_Resources/Android/src/main/app.gradle

    机器人 默认配置 应用程序ID“com.company.app” minSdkVersion 17 生成密度 = []

    nativescript.config.ts文件更新ID:id: 'com.company.app' // match application id

    cmd:ns platform remove android; ns prepare android

参考:https://docs.nativescript.org/releasing#overviewhttps://developer.android.com/studio/build/application-id?hl=ko

【讨论】:

以上是关于如果我设置了 Firebase,nativescript 应用程序的安装将成功,但不会运行的主要内容,如果未能解决你的问题,请参考以下文章

如果用户已经无密码登录,firebase 可以设置密码身份验证吗?

如果我在我的 firebase 云功能中将请求的模式设置为“no-cors”,会发生啥?

分析数据未显示在Firebase控制台中

Firebase 更新与设置

Firebase Analytics 未跟踪我的应用屏幕名称:屏幕名称(未设置)

在 Firebase 中,我是不是设置了我的 404 页面