一旦安装了BackgroundGeolocation Plugin with Capacitor,就无法在Android上构建Ionic应用程序

e4yzc0pl  于 2023-09-28  发布在  Ionic
关注(0)|答案(2)|浏览(140)

我正在尝试将我的应用从Cordova迁移到Capacitor,但我仍然需要使用后台地理定位等功能。为此,我使用这个插件:https://ionicframework.com/docs/native/background-geolocation
所以,为了测试这一点,我创建了一个新的应用程序,添加了电容器并安装了这个插件。正如这里提到的(https://github.com/ionic-team/capacitor/issues/2529#issuecomment-603205348),我在我的字符串文件中添加了以下行:

<string name="mauron85_bgloc_account_name">@string/app_name</string>
<string name="mauron85_bgloc_account_type">$PACKAGE_NAME.account</string>
<string name="mauron85_bgloc_content_authority">$PACKAGE_NAME</string>

在那之后,我运行了npx cap sync
现在,每当我尝试构建应用程序时,我都会得到以下错误:Execution failed for task ':capacitor-cordova-android-plugins:compileDebugJavaWithJavac'.
在我的控制台中,上面有很多丢失的导入错误,像这样:

C:\Users\zxy\Desktop\mobile_apps\testApp\android\capacitor-cordova-android-plugins\src\main\java\com\evgenii\jsevaluator\JsEvaluator.java:4: error: package android.support.annotation does not exist
import android.support.annotation.VisibleForTesting;
> C:\Users\zxy\Desktop\mobile_apps\testApp\android\capacitor-cordova-android-plugins\src\main\java\com\marianhello\bgloc\BackgroundGeolocationFacade.java:17: error: package android.support.v4.content does not exist
> import android.support.v4.content.ContextCompat;
>                                  ^
> C:\Users\zxy\Desktop\mobile_apps\testApp\android\capacitor-cordova-android-plugins\src\main\java\com\marianhello\bgloc\BackgroundGeolocationFacade.java:18: error: package android.support.v4.content does not exist
> import android.support.v4.content.LocalBroadcastManager;

任何想法,我如何才能使这个插件与电容器?

yvgpqqbh

yvgpqqbh1#

我终于把它建起来了。
以下错误(及相关错误)error: package android.support.annotation does not exist已通过从项目根目录运行$ npx jetifier修复。
来源:https://github.com/ionic-team/capacitor/issues/1937
还建议将其合并到postinstall钩子中。希望这能有所帮助!

vfh0ocws

vfh0ocws2#

该插件依赖于3个字符串,这些字符串是为Cordova自动添加的,但不是为Capacitor添加的。只需将以下内容添加到您的strings.xml文件中:
路径:android\app\src\main\res\values\strings.xml

<string name="mauron85_bgloc_account_name">@string/app_name</string>
<string name="mauron85_bgloc_account_type">$PACKAGE_NAME.account</string>
<string name="mauron85_bgloc_content_authority">$PACKAGE_NAME</string>

相关问题