如果我设置了 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.xml
:package="__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”,会发生啥?