android - 如何在 Android 上使用 MongoDB Morphia?
问题描述
我正在尝试在 Android 应用程序上使用morphia与 MongoDB 实例进行交互。
摇篮依赖: implementation 'org.mongodb.morphia:morphia:1.3.2'
实例化 Morphia 时
Morphia morphia = new Morphia();
我收到此错误:
E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.dibu2018.futbol, PID: 5085
java.lang.ExceptionInInitializerError
at java.lang.Class.classForName(Native Method)
at java.lang.Class.forName(Class.java:453)
at java.lang.Class.forName(Class.java:378)
at org.mongodb.morphia.mapping.lazy.LazyFeatureDependencies.testDependencyFullFilled(LazyFeatureDependencies.java:42)
at org.mongodb.morphia.mapping.lazy.LazyFeatureDependencies.createDefaultProxyFactory(LazyFeatureDependencies.java:57)
at org.mongodb.morphia.mapping.Mapper.<init>(Mapper.java:102)
at org.mongodb.morphia.Morphia.<init>(Morphia.java:47)
at com.example.dibu2018.futbol.storage.external.datahandlers.FutbolDbHelper.<init>(FutbolDbHelper.java:49)
at com.example.dibu2018.futbol.storage.external.datahandlers.FutbolDbHelper.getInstance(FutbolDbHelper.java:27)
at com.example.dibu2018.futbol.activities.GameDetailsActivity.onCreate(GameDetailsActivity.java:31)
..........
Caused by: net.sf.cglib.core.CodeGenerationException: java.lang.reflect.InvocationTargetException-->null
at net.sf.cglib.core.AbstractClassGenerator.create(AbstractClassGenerator.java:237)
at net.sf.cglib.core.KeyFactory$Generator.create(KeyFactory.java:144)
at net.sf.cglib.core.KeyFactory.create(KeyFactory.java:116)
...........
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)
Caused by: java.lang.reflect.InvocationTargetException
at java.lang.reflect.Method.invoke(Native Method)
at net.sf.cglib.core.ReflectUtils.defineClass(ReflectUtils.java:384)
at net.sf.cglib.core.AbstractClassGenerator.create(AbstractClassGenerator.java:219)
............
Caused by: java.lang.UnsupportedOperationException: can't load this type of class file
at java.lang.ClassLoader.defineClass(ClassLoader.java:591)
at java.lang.reflect.Method.invoke(Native Method)
............
解决方案
根据这个 github 问题,Morphia 不是为在 Android 上运行而构建的。我假设我的错误是由于尝试
代理惰性引用
正如evachooly在那个 github 问题上指出的那样。AndroidRuntime 抛出的确切错误行:
org.mongodb.morphia.mapping.lazy.LazyFeatureDependencies.testDependencyFullFilled(LazyFeatureDependencies.java:42)
推荐阅读
- kubectl - AWS CodeBuild kubectl apply -f 无法识别:未经授权
- python-3.x - numpy数组到字符串加载?
- sql - 案例表达式比较 ColumnName 查找存在且 ColumnName 不为空
- swagger - 以编程方式生成 Swagger Bearer 令牌
- python - 跨两个数据帧的乘法
- ios - 未显示来自 JSON 的 SwiftUI Picker 数据
- c++ - 静态函数中的递归调用 - gcc 产生 recursive_init_error 异常
- asp.net-core - blazor 现在对于生产是否足够稳定,或者我应该将 MVC 与 JS 框架一起使用?
- python - 使用 Boost::Python 将数据从 C++ 向量复制到 numpy 数组的最有效方法
- java - 俄语中的Hibernate创建记录显示为问号mysql