我正在尝试将电容器 v3 插件注册到 Android,但没有任何效果

Posted

技术标签:

【中文标题】我正在尝试将电容器 v3 插件注册到 Android,但没有任何效果【英文标题】:I am trying to register capacitor v3 plugins to Android but nothing works 【发布时间】:2021-09-25 15:22:05 【问题描述】:

我正在使用 Ionic 5、Capacitor 3、android 4.2.2 Node 14...等

我正在尝试在 Android 中安装电容器插件地理定位和存储,如下所示:

package io.ionic.seakah;

import android.os.Bundle;
import com.capacitorjs.plugins.storage.StoragePlugin;>>>ERROR...cannot resolve symbol
import com.capacitorjs.plugins.geolocation.Geolocation;
import com.getcapacitor.BridgeActivity;

public class MainActivity extends BridgeActivity 
  @Override
  public void onCreate(Bundle savedInstanceState) 
    super.onCreate(savedInstanceState);
    registerPlugin(StoragePlugin.class); >>>ERROR...cannot resolve symbol
    registerPlugin(Geolocation.class);>>>ERROR...registerPlugin not recognized

    // Initializes the Bridge
    // this.init(savedInstanceState, new ArrayList<Class<? extends Plugin>>() 
       //Additional plugins you've installed go here
       //Ex: add(TotallyAwesomePlugin.class);

   // );
  

首先要注意的是 init 方法已被弃用并且 add() 被 registerPlugin() 替换...问题是在所有调整之后插件无法识别... 我确保运行 npm cap sync 并从 Android Studio 内部重建。现有文档主要针对 Capacitor V2。将不胜感激任何帮助...谢谢

【问题讨论】:

【参考方案1】:

您无需手动注册GeolocationStorage 插件。关注documentation。对于Geolocation,您应该为Android 更新Manifest,它会正常工作。

自定义插件需要注册插件(也可能是社区插件):https://capacitorjs.com/docs/plugins/android

【讨论】:

这正是我正在做的......错误来自手动注册。 @MichaelE 您不需要手动注册这些插件。你为什么这样做? 我在关注文档,但可能转错了方向。我已经通过大量的试验和错误设法解决了我的问题。我可以将您的回答归功于引导我找到解决方案。 同样的问题在这里尝试注册社区插件但无法解析 MainActivity.java 中的符号我可以说的是包库没有被加载,因为依赖项没有被添加/注入到../capacitor-cordova-android-plugins 执行同步时。我只是不太了解如何检测插件包并将其加载到 android 项目结构中。

以上是关于我正在尝试将电容器 v3 插件注册到 Android,但没有任何效果的主要内容,如果未能解决你的问题,请参考以下文章

Capacitor v3 插件不适用于 android 构建

如何在Android上处理电容器中的传入共享内容

尝试将类型注册到IoC容器时,HttpContext.Current为null

使用插件启动 ElasticSearch 的测试容器

使用 ng-recaptcha 将 Google reCaptcha v3 集成到 Angular 应用程序中

在 GitLab 注册表中看不到容器映像