NativeScript:@nativescript/geolocation 与 nativescript-google-maps-sdk

Posted

技术标签:

【中文标题】NativeScript:@nativescript/geolocation 与 nativescript-google-maps-sdk【英文标题】:NativeScript: @nativescript/geolocation vs nativescript-google-maps-sdk 【发布时间】:2021-12-13 23:32:38 【问题描述】:

执行静态绑定生成器时出错:文件已存在。这可能导致不良行为。 请更改其中一个扩展类的名称。 文件:C:\repo\geo\geoapp\platforms\android\app\src\main\java\com\tns\FragmentClass.java 类:com.tns.FragmentClass

我不断收到此错误。它首先尝试让@nativescript/geolocation 插件工作。它已编译,但是当调用 geolocation.watchLocation() 方法时应用程序将崩溃。这就是我试图解决的问题。我运行了几次ns clean,重新启动并删除了c:\users\<username>\.gradle 文件夹。当我之前遇到此错误时,删除 .gradle 文件夹有效。

这可能与使用nativescript-google-maps-sdk 插件有关。我相信googlePlayServicesVersion 存在一个已知问题。我也尝试了这些选项,没有任何喜悦。我对应该编辑哪个文件有点困惑;有人提到/app/App_Resources/Android/app.gradle,有人提到app/App_Resources/Android/before-plugins.gradle,我都试过了。

任何建议将不胜感激。

"dependencies": 
    "@nativescript/core": "~8.1.1",
    "@nativescript/theme": "~3.0.1",
    "nativescript-vue": "~2.9.0",
    "vuex": "~3.6.2",
    "@nativescript/geolocation": "7.0.0",
    "@nativescript/directions": "~2.0.1",
    "@nativescript/social-share": "~2.0.4",
    "@triniwiz/nativescript-couchbase": "~1.2.5",
    "@triniwiz/nativescript-toasty": "~4.1.3",
    "@bradmartin/nativescript-urlhandler": "~2.0.1",
    "nativescript-google-maps-sdk" : "3.0.2",
    "nativescript-gif": "~5.0.0"
  ,
  "devDependencies": 
    "@nativescript/android": "8.1.1",
    "@nativescript/webpack": "~5.0.0",
    "nativescript-vue-template-compiler": "~2.9.0",
    "@vue/devtools": "^5.3.4",
    "@triniwiz/nativescript-toasty": "~4.1.3",
    "@triniwiz/nativescript-socketio": "4.0.1",
    "nativescript-vue-devtools": "1.5.1"
  

【问题讨论】:

【参考方案1】:

已修复!为了缩小潜在问题的范围,我创建了一个新项目,逐位复制原始代码,并在其间运行 ns build android 命令。结果是我将旧的 tns- 包切换到新的 @nativescript 包时的一些旧包引用 (import Something from 'some-packages')。然而,一个包需要进一步使用 --force 选项 (ns build android --force) 才能开始工作。

@nativescript/geolocation vs nativescript-google-maps-sdk 部分而言,已通过添加 App_Resources\Android\before-plugins.gradle 文件修复内容如下

android 
    project.ext  
        googlePlayServicesVersion = "16.+"
    
    dependencies 
        def googlePlayServicesVersion = project.googlePlayServicesVersion
        compile "com.google.android.gms:play-services-location:$googlePlayServicesVersion"
    

【讨论】:

以上是关于NativeScript:@nativescript/geolocation 与 nativescript-google-maps-sdk的主要内容,如果未能解决你的问题,请参考以下文章

如何调试 nativescript 抛出“NativeScript 捕获信号 11”。错误?

如何在 Nativescript-Vue 中使用 nativescript-drawingpad?

nativescript-vue 的 nativescript-fonticon

Nativescript - 设置 Nativescript 插件的目标 IOS 版本

如何在 NativeScript Vue 中设置“nativescript-stripe”

风味“nativescript-ui-listview”具有未知维度“nativescript-ui-listview”