如何解决如果我设置了 Firebase,nativescript 应用程序的安装会成功,但不会运行
我对安卓知之甚少。 我使用的是 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”文件夹。
-
我在“App_Resources/Android/app.gradle”的第一行添加了应用插件:'com.Google.gms.Google-services'并注入了两个依赖项。
实现平台('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”命令时,没有出现错误并显示“成功安装在设备上”日志,但应用程序没有运行。
即使我启动应用程序也不会发生任何事件。
我制作了@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 创建了一个模板。
解决方法
终于发现问题了。
问题:
我更改了文件“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
:安卓{ 默认配置{ applicationId "com.company.app" minSdk 版本 17 生成密度 = [] }
-
从
nativescript.config.ts
文件更新 ID:id: 'com.company.app' // match application id
-
命令:
ns platform remove android; ns prepare android
参考:
https://docs.nativescript.org/releasing#overview
https://developer.android.com/studio/build/application-id?hl=ko
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。