java - 在 android adain 中创建 EHCache 实例时出现 java.lang.ExceptionInInitializerError
问题描述
我正在尝试在 Android 中使用 ehCache,并收到以下错误
08-01 10:26:11.308 1645-1645/com.example.ehcache.ehcache_test E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.ehcache.ehcache_test, PID: 1645
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.ehcache.ehcache_test/com.example.ehcache.ehcache_test.MainActivity}: net.sf.ehcache.CacheException: java.lang.ExceptionInInitializerError
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2902)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3037)
at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:78)
at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:108)
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:68)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1797)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:193)
at android.app.ActivityThread.main(ActivityThread.java:6642)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)
这是我试图初始化的代码
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
CacheManager manager = CacheManager.getInstance();
try {
manager.addCache("myCache");
Cache myCache = manager.getCache("myCache");
myCache.put(new Element("hoge", "HOGE"));
myCache = manager.getCache("myCache");
Element element = myCache.get("hoge");
System.out.println("myCache.hoge = " + element.getObjectValue());
} finally {
manager.shutdown();
}
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
}
ehcache.xml
<?xml version="1.0" encoding="UTF-8"?>
<ehcache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="http://ehcache.org/ehcache.xsd">
<cache name="myCache"
maxEntriesLocalHeap="0">
</cache>
</ehcache>
目录树 在此处输入图像描述
此问题之前已定义,但尚未解决。 在android中创建EHCache实例时出现java.lang.ExceptionInInitializerError
我将等待任何答案。
解决方案
我们需要 CacheException 的来源来告诉您发生了什么。但是,如果它不起作用,我不会感到惊讶。Ehcache 2.x 不再维护。
您可能想改用 Ehcache 3.x。如果它不起作用,我们将立即修复它。:-)
推荐阅读
- excel - 在不同页面上调用相同的表
- hadoop - xls 文件的 Flume 失败
- r - 在`factor`或`as.factor`的情况下结果不同?
- php - 在 Laravel 迁移中重命名列,强制小写
- python-3.x - 通过UART写入微控制器
- java - 如何修复我的排序方法所以我得到名字的字母顺序
- ibm-cloud - IBM Cloud Functions:是否可以让一个函数由多个 Javascript 文件组成?
- reactjs - 无法在已解析的 html 中修改子项
- python - 在 GroupByKey 之后减少 PCollection
- dart - How to make HTTP request on dart and pass parameters