安装了 Capacitor 的 BackgroundGeolocation 插件后,无法在 Android 上构建 Ionic 应用程序

3
我正在尝试将我的应用从Cordova迁移到Capacitor,但我仍然需要使用像后台地理位置这样的功能。为此,我正在使用这个插件:https://ionicframework.com/docs/native/background-geolocation 因此,为了测试这个插件,我创建了一个全新的应用程序,在其中添加了Capacitor并安装了这个插件。如在此处(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;

有什么办法可以让这个插件与Capacitor一起使用吗?

2个回答

12

最终我成功构建了它。

下面的错误(以及相关错误) error: package android.support.annotation does not exist 通过在项目根目录下运行$ npx jetifier来解决。

来源:https://github.com/ionic-team/capacitor/issues/1937

还建议将其合并到postinstall hook中。希望这能有所帮助!


0
插件依赖于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>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接