- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
发生了什么:
需要考虑的事项:
我使用 gson/json 将数组列表存储在 android 共享首选项中。 (共享首选项适用于其他值,错误似乎是在使用 json/gson 将字符串转换为 arraylist 时)
我的代码:
public void loadDataSavedMatches() {
SharedPreferences prefs = getSharedPreferences(SHARED_PREFS_FILE, Context.MODE_PRIVATE);
Gson gson = new Gson();
String json = prefs.getString("task list", null);
Type type = new TypeToken<ArrayList<TennisMatch>>() {
}.getType();
mTennisMatches = gson.fromJson(json, type);
if (mTennisMatches == null) {
mTennisMatches = new ArrayList<>();
}
Log.i("LOAD DATA", String.valueOf(mTennisMatches));
Log.i("LOAD DATA2", String.valueOf(prefs));
//hashMap
SharedPreferences hashPrefs = getSharedPreferences(HASH_MAP_SHARED_PREFS_FILE, Context.MODE_PRIVATE);
Gson hashGson = new Gson();
String hashJson = hashPrefs.getString("hashString", null);
Type hashType = new TypeToken<HashMap<String, TennisMatch>>() {
}.getType();
item_map = hashGson.fromJson(hashJson, hashType);
if (item_map == null) {
item_map = new HashMap<String, TennisMatch>();
}
}
错误信息:
E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.android.myapp, PID: 28341
java.lang.AssertionError: impossible
at java.lang.Enum$1.create(Enum.java:45)
at java.lang.Enum$1.create(Enum.java:35)
at libcore.util.BasicLruCache.get(BasicLruCache.java:54)
at java.lang.Enum.getSharedConstants(Enum.java:211)
at java.lang.Class.getEnumConstants(Class.java:1063)
at com.google.gson.internal.bind.TypeAdapters$EnumTypeAdapter.<init>(TypeAdapters.java:778)
at com.google.gson.internal.bind.TypeAdapters$30.create(TypeAdapters.java:817)
at com.google.gson.Gson.getAdapter(Gson.java:423)
at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.createBoundField(ReflectiveTypeAdapterFactory.java:115)
at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.getBoundFields(ReflectiveTypeAdapterFactory.java:164)
at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.create(ReflectiveTypeAdapterFactory.java:100)
at com.google.gson.Gson.getAdapter(Gson.java:423)
at com.google.gson.internal.bind.CollectionTypeAdapterFactory.create(CollectionTypeAdapterFactory.java:53)
at com.google.gson.Gson.getAdapter(Gson.java:423)
at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.createBoundField(ReflectiveTypeAdapterFactory.java:115)
at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.getBoundFields(ReflectiveTypeAdapterFactory.java:164)
at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.create(ReflectiveTypeAdapterFactory.java:100)
at com.google.gson.Gson.getAdapter(Gson.java:423)
at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.createBoundField(ReflectiveTypeAdapterFactory.java:115)
at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.getBoundFields(ReflectiveTypeAdapterFactory.java:164)
at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.create(ReflectiveTypeAdapterFactory.java:100)
at com.google.gson.Gson.getAdapter(Gson.java:423)
at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.createBoundField(ReflectiveTypeAdapterFactory.java:115)
at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.getBoundFields(ReflectiveTypeAdapterFactory.java:164)
at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.create(ReflectiveTypeAdapterFactory.java:100)
at com.google.gson.Gson.getAdapter(Gson.java:423)
at com.google.gson.internal.bind.CollectionTypeAdapterFactory.create(CollectionTypeAdapterFactory.java:53)
at com.google.gson.Gson.getAdapter(Gson.java:423)
at com.google.gson.Gson.fromJson(Gson.java:887)
at com.google.gson.Gson.fromJson(Gson.java:853)
at com.google.gson.Gson.fromJson(Gson.java:802)
at com.android.myapp.Activity.loadDataSavedMatches(ItemMatchListActivity.java:282)
at com.android.myapp.Activity.onCreate(ItemMatchListActivity.java:87)
at android.app.Activity.performCreate(Activity.java:6102)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1106)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2403)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2512)
at android.app.ActivityThread.access$1200(ActivityThread.java:165)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1373)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5593)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:960)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:755)
Caused by: java.lang.NoSuchMethodException: values []
at java.lang.Class.getMethod(Class.java:664)
at java.lang.Class.getDeclaredMethod(Class.java:626)
at java.lang.Enum$1.create(Enum.java:41)
at java.lang.Enum$1.create(Enum.java:35)
at libcore.util.BasicLruCache.get(BasicLruCache.java:54)
at java.lang.Enum.getSharedConstants(Enum.java:211)
at java.lang.Class.getEnumConstants(Class.java:1063)
at com.google.gson.internal.bind.TypeAdapters$EnumTypeAdapter.<init>(TypeAdapters.java:778)
at com.google.gson.internal.bind.TypeAdapters$30.create(TypeAdapters.java:817)
at com.google.gson.Gson.getAdapter(Gson.java:423)
at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.createBoundField(ReflectiveTypeAdapterFactory.java:115)
at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.getBoundFields(ReflectiveTypeAdapterFactory.java:164)
at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.create(ReflectiveTypeAdapterFactory.java:100)
at com.google.gson.Gson.getAdapter(Gson.java:423)
at com.google.gson.internal.bind.CollectionTypeAdapterFactory.create(CollectionTypeAdapterFactory.java:53)
at com.google.gson.Gson.getAdapter(Gson.java:423)
at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.createBoundField(ReflectiveTypeAdapterFactory.java:115)
at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.getBoundFields(ReflectiveTypeAdapterFactory.java:164)
at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.create(ReflectiveTypeAdapterFactory.java:100)
at com.google.gson.Gson.getAdapter(Gson.java:423)
at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.createBoundField(ReflectiveTypeAdapterFactory.java:115)
at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.getBoundFields(ReflectiveTypeAdapterFactory.java:164)
at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.create(ReflectiveTypeAdapterFactory.java:100)
at com.google.gson.Gson.getAdapter(Gson.java:423)
at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.createBoundField(ReflectiveTypeAdapterFactory.java:115)
at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.getBoundFields(ReflectiveTypeAdapterFactory.java:164)
at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.create(ReflectiveTypeAdapterFactory.java:100)
at com.google.gson.Gson.getAdapter(Gson.java:423)
at com.google.gson.internal.bind.CollectionTypeAdapterFactory.create(CollectionTypeAdapterFactory.java:53)
at com.google.gson.Gson.getAdapter(Gson.java:423)
at com.google.gson.Gson.fromJson(Gson.java:887)
at com.google.gson.Gson.fromJson(Gson.java:853)
at com.google.gson.Gson.fromJson(Gson.java:802)
at com.android.myapp.Activity.loadDataSavedMatches(ItemMatchListActivity.java:282)
at com.android.myapp.Activity.onCreate(ItemMatchListActivity.java:87)
at android.app.Activity.performCreate(Activity.java:6102)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1106)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2403)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2512)
at android.app.ActivityThread.access$1200(ActivityThread.java:165)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1373)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5593)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:960)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:755)
感谢您的帮助!
最佳答案
参见 Android release APK crash with java.lang.AssertionError: impossible in java.lang.Enum , AssertionError in Gson EnumTypeAdapter when using Proguard Obfuscation或 https://github.com/zendesk/sunshine-conversations-android/issues/93 .在 proguard-rules.pro
添加:
-keepclassmembers enum * {
public static **[] values();
public static ** valueOf(java.lang.String);
}
关于java.lang.AssertionError : impossible Caused by: java. lang.NoSuchMethodException: 值 [],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54847976/
更新:请注意,我不是在问什么是盐、什么是彩虹表、什么是字典攻击或盐的目的是什么。我想问:如果你知道用户的salt和hash,是不是很容易算出他们的密码? 我理解这个过程,并在我的一些项目中自己实现它。
我的 Android 应用程序中有一些固有的异步代码。我正在使用 RxJava2。 Thing 类不在我的控制之下(但 ThingFactory 可以)。在一种方法 (createThing()) 中
一个相当聪明的人告诉我,你不能在 C 中实现垃圾收集,因为它是弱类型的。基本思想似乎是 C 给了你太多的自由。他提到在没有类型检查的情况下转换指针... 我不太理解这个想法。有人可以给我一个解释,并可
Type-Driven Development with Idris礼物: twoPlusTwoNotFive : 2 + 2 = 5 -> Void twoPlusTwoNotFive Refl i
数学类型如何以可搜索的格式表示,如文本? 我的意思是有一个工具栏,您可以输入数学符号并将它们作为文本进行搜索,因此该格式可以将数学符号表示为文本。 因为数学类型只能用图标表示,所以这样的任务是不可能实
#include int main(void){ asm volatile("ldi r16, %0\n\t" "out %1, r16\n\t"
我想做一个平均值:问题是我正在计算每个元素的 AVG 的 1 个项目(工作)但是一旦我想要类别平均值的 GLOBAL 平均值(something and foo) 它不起作用(mysql 向我抛出一个
我的程序似乎遇到了一个非常难以重现的错误:难得一见,当用户将他的 Mac 置于休眠状态,然后再次将其唤醒时,我程序的一个子进程将崩溃Mac 唤醒后立即。 发生这种情况时,Apple 的崩溃报告机制会可
如果您已经编程了一段时间,那么您可能会注意到时不时会发生一些完全不可能发生的事情,您确信对此没有可能的解释(“这是一个编译器错误!!”)。在你找出它是由什么引起的之后,虽然你就像“哦哦”。 嗯,这只是
我正在使用 DownloadManager 从网络服务下载文件。下载成功结束,但是当我尝试打开“下载”文件夹中的新文件时,出现“无法打开文件”错误(我知道我可以打开这种类型的文件)。 此外,当我将手机
偶尔我会遇到这样的情况,我写了一些代码,但根据它的逻辑,某条路径是不可能的。例如: activeGames = [10, 20, 30] limit = 4 def getBestActiveGame
因此,我一直致力于将 Chip-8 仿真器作为我的 CompSci 类(class)的期末项目,并且遇到了一个似乎超出我的代码范围的问题。我下载的大量演示(我确信它们是真正的 Chip-8 程序,而不
因此,我一直致力于将 Chip-8 仿真器作为我的 CompSci 类(class)的期末项目,并且遇到了一个似乎超出我的代码范围的问题。我下载的大量演示(我确信它们是真正的 Chip-8 程序,而不
我的应用程序的一部分通过互联网在两个设备之间传输序列化对象数据,并在另一端反序列化(通过使用 Kryo 库)。 Proguard 混淆了这些类的名称,但我现在意识到我应该不混淆序列化类,以便应用程序的
我正在尝试做一些可能不可能用运算符重载来做的事情。我对重载赋值运算符特别感兴趣,它会接收另一种数据类型 值作为其右手值。它应该看起来像这样: MyClass myclass = "hello worl
我试图在 Java 上实现 Miller-Rabin 素数测试,并将其计算时间与 BigInteger 类的 native 素数测试进行比较。鉴于我在这里,您可能已经猜到我的代码不起作用。问题是,我得
我从 Linux 下的汇编程序开始。我已将以下代码保存为 testasm.c 并编译它:gcc testasm.c -ostasm 编译器回复:“'asm' 中不可能的约束”。 #include i
我在做一个VUE项目。。Reaction也是如此。。DevServer{代理:...在webpack设置中...当应用}时,代理设置适用于在npmi安装的库。。但,。Const脚本=createEle
如何在 AS3 中保留内容(图形、添加的显示对象等)的同时复制显示对象( Sprite 、影片剪辑等)? Kirupa (http://www.kirupa.com/forum/showpost.ph
我制作了一些应用程序来构建一个巨大的 FlowDocument。构建 FlowDocument 所用的时间约为 3~4 秒。 所以我喜欢在 BackgroundWorker 中构建 FlowDocum
我是一名优秀的程序员,十分优秀!