我正在尝试将电容器 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】:您无需手动注册Geolocation
或Storage
插件。关注documentation。对于Geolocation
,您应该为Android 更新Manifest
,它会正常工作。
自定义插件需要注册插件(也可能是社区插件):https://capacitorjs.com/docs/plugins/android
【讨论】:
这正是我正在做的......错误来自手动注册。 @MichaelE 您不需要手动注册这些插件。你为什么这样做? 我在关注文档,但可能转错了方向。我已经通过大量的试验和错误设法解决了我的问题。我可以将您的回答归功于引导我找到解决方案。 同样的问题在这里尝试注册社区插件但无法解析 MainActivity.java 中的符号我可以说的是包库没有被加载,因为依赖项没有被添加/注入到../capacitor-cordova-android-plugins
执行同步时。我只是不太了解如何检测插件包并将其加载到 android 项目结构中。以上是关于我正在尝试将电容器 v3 插件注册到 Android,但没有任何效果的主要内容,如果未能解决你的问题,请参考以下文章
Capacitor v3 插件不适用于 android 构建
尝试将类型注册到IoC容器时,HttpContext.Current为null