android工程使用gson的typetoken类以后代码混淆出错的问题 30C

我没有对gson和使用到的实体bean类进行混淆,但是发现有闪退现象,反编译之后发现
在创建typetoken的时候,被莫名其妙混淆了
图片说明
然后我去查看typetoken类发现其实并没有混淆typetoken
图片说明
现在就出现了这个报错导致闪退
图片说明

求高人帮忙解决下这个问题

1个回答

加上包名试试, 没有遇见过这种问题。。。。

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
在使用gson时,创建该对象但是不能导入Gson类

![图片说明](https://img-ask.csdn.net/upload/201604/06/1459900856_234499.png) 由于做毕设,是android项目,需要用到gson,我从github上面下载了gson-master.zip,目录和上面的图一样,我将压缩包解压后放在与我的android项目同一目录下面,然后在我的项目中创建gson对象,但是gson这个类不能导入,这个怎么解决?前段时间使用了slidingmenu,只需要关联里面的library就可以,但是这个里面没有jar文件,也没有library,希望可以得到大家的指导,谢谢

androidstudio 代码混淆

android studio如何实现代码混淆?具体方法应该怎么做?请一步一步介绍清楚!谢谢

在Android中使用Gson解析json

public class GeRen extends Activity { private ArrayList<result> s_list; private TextView type,opendate,name,sex,enddate; @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); setContentView(R.layout.geren); initview(); //str为网络请求到的json字符串 String str=this.getIntent().getStringExtra("key"); Log.e("TAG2", str); Gson gson = new Gson(); Datas d = gson.fromJson(str, Datas.class); setS_list(d.getResult()); // for(int i=0;i<s_list.size();i++){ // type.setText(s_list.get(i).getType()); // opendate.setText(s_list.get(i).getOpendate()); // name.setText(s_list.get(i).getName()); // sex.setText(s_list.get(i).getSex()); // enddate.setText(s_list.get(i).getEnddate()); // } } private void initview() { type=(TextView) findViewById(R.id.type); opendate=(TextView) findViewById(R.id.opendate); name=(TextView) findViewById(R.id.name); sex=(TextView) findViewById(R.id.sex); enddate=(TextView) findViewById(R.id.enddate); } } 为什么Datas d = gson.fromJson(str, Datas.class);为空 求大神解惑

Android Gson转换问题

import android.R.bool; public class WebServerData { /// <summary> /// 返回数据 /// </summary> public String data; /// <summary> /// 提示消息 /// </summary> public String msg ; /// <summary> /// 是否成功 /// </summary> public bool success ; public String getData() { return data; } public void setData(String data) { this.data = data; } public String getMsg() { return msg; } public void setMsg(String msg) { this.msg = msg; } public bool getSuccess() { return success; } public void setSuccess(bool success) { this.success = success; } } 转换: String d = msg.getData().getString("data"); Gson gson = new Gson(); gson.fromJson(d, WebServerData.class); 问题:问什么把对象中bool类型的参数去掉转换成功,有bool类型的就失败?

android项目报gson jar包could not expand ZIP

android项目报错: Execution failed for task ':app:compileDebugJavaWithJavac'. > Could not expand ZIP 'C:\Users\admin\.gradle\caches\modules-2\files-2.1\com.google.code.gson\gson\2.8.6\9180733b7df8542621dc12e21e87557e8c99b8cb\gson-2.8.6.jar'. 启动都就报这个错,但是我项目中并没有用到gson,android小白上手就遇到这个,希望有大神帮忙解决,感谢感谢~

Android gson解析复杂JSON数据

如何用gson 解析下图 JSON数据 ,并把三个tson提取出来 分别放在三个 list中 我是想把json里的三个 tson 分别 提取出来放在三个list上!! ![图一](https://img-ask.csdn.net/upload/201805/10/1525916235_570048.png)

android 中的 Gson 序列化

在数据库中有一些数据,我想把数据放在序列化的 JSON 格式中。使用 GSON 序列化如何实现? 我不想用获取数据然后把数据放进格式中的方法。 还有什么方法能实现呢?

android studio 混淆文件配置

![据说android studio 默认将libs的第三方jar包忽略混淆,所以就没有将类似#-libraryjars libs/umeng-analytics-v5.2.4.jar的操作写入到配置文件,只是将-keep class com.umeng.**{*;}和忽略警告的操作写入配置文件。但是发现gradle在.idea/libraries中引入了其他很多jar包以及这些包的存储地址。刚好程序报错中的com.b.a.a.a 就是指的idea/libraries中的一个包中的类,即为com.loopj.android.http.AsyncHttpClient,不知道怎么在混淆配置文件中忽略这些包的混淆。最后通过配置,发现这些包还是被混淆了,不知道怎么才能配置好这些包不被混淆](https://img-ask.csdn.net/upload/201511/10/1447140316_8891.jpg) 下面是我的配置文件: -optimizationpasses 5 -dontusemixedcaseclassnames -verbose -dontpreverify -optimizations !code/simplification/arithmetic,!field/*,!class/merging/* -keepattributes *Annotation* -keepattributes Signature -keep class android.**{*;} -keep public class * extends android.view -keep public class * extends android.app.Fragment -keep public class * extends android.app.Activity -keep public class * extends android.app.Application -keep public class * extends android.app.Service -keep public class * extends android.content.BroadcastReceiver -keep public class * extends android.content.ContentProvider -keep public class * extends android.app.backup.BackupAgentHelper -keep public class * extends android.preference.Preference -keep public class * extends android.support.V4.** -keep public class * extends android.vending.licensing.ILicensingService -dontwarn android.support.v4.** -keep class * extends android.support.v4.**{*;} -dontwarn android.support.v7.** -keep class * extends android.support.v7.**{*;} /* 将libs文件下的三方包忽略混淆*/ -keep class com.mob.logcolletor.**{ *;} -dontwarn com.mob.tools.** -keep class com.mob.tools.**{ *;} -dontwarn com.mob.baidu.** -keep class com.mob.baidu.**{ *;} -dontwarn cn.sharesdk.framework.** -keep class cn.sharesdk.framework.**{ *;} -dontwarn cn.sharesdk.system.email.** -keep class cn.sharesdk.system.email.**{ *;} -dontwarn cn.sharesdk.tencent.qq.** -keep class cn.sharesdk.tencent.qq.**{ *;} -dontwarn cn.sharesdk.system.text.** -keep class cn.sharesdk.system.text.**{ *;} -dontwarn cn.sharesdk.wechat.friends.** -keep class cn.sharesdk.wechat.friends.**{ *;} -dontwarn cn.sharesdk.wechat.utils.** -keep class cn.sharesdk.wechat.utils.**{ *;} -dontwarn cn.sharesdk.wechat.favorite.** -keep class cn.sharesdk.wechat.favorite.**{ *;} -dontwarn cn.sharesdk.wechat.moments.** -keep class cn.sharesdk.wechat.moments.**{ *;} -dontwarn com.tencent.** -keep class com.tencent..**{ *;} -keep public interface com.mob.logcolletor.** -keep public interface com.mob.tools.** -keep public interface com.mob.baidu.** -keep public interface cn.sharesdk.framework.** -keep public interface cn.sharesdk.system.email.** -keep public interface cn.sharesdk.tencent.qq.** -keep public interface cn.sharesdk.system.text.** -keep public interface cn.sharesdk.wechat.friends.** -keep public interface cn.sharesdk.wechat.utils.** -keep public interface cn.sharesdk.wechat.favorite.** -keep public interface cn.sharesdk.wechat.moments.** -keepclasseswithmembernames class * { native <methods>; } -keepclassmembers public class * extends android.view.View { void set*(***); *** get*(); } -keepclasseswithmembernames class * { void onClick*(...); } -keepclasseswithmembernames class * { *** *Callback(...); } -keepclasseswithmembernames class * { public <init>(android.content.Context,android.util.AttributeSet,int); } -keepclasseswithmembernames class * { public <init>(android.content.Context,android.util.AttributeSet); } -keepclassmembers class * extends android.app.Activity { public void *(android.view.View); } -keepclassmembers enum * { public static **[] values(); public static ** valueOf(java.lang.String); } -keep class * implements android.os.Parcelable { public static final android.os.Parcelable$Creator *; } -keep class org.apache.http.**{*;} -keepclassmembers class **.R$* { public static <fields>; } /* 将External Libraries文件下的三方包忽略混淆*/ -libraryjars $USER_HOME$/.gradle/caches/modules-2/files-2.1/com.loopj.android/android-async-http/1.4.8/77bbfe240e437ecb396d982afa0d3bd4f9090ba7/android-async-http-1.4.8.jar -libraryjars $USER_HOME$/.gradle/caches/modules-2/files-2.1/com.loopj.android/android-async-http/1.4.8/ec314dce534e83c93364388d023625bb8e605e38/android-async-http-1.4.8-sources.jar! -libraryjars build/intermediates/exploded-aar/com.soundcloud.android/android-crop/1.0.0/jars/classes.jar -libraryjars build/intermediates/exploded-aar/com.android.support/appcompat-v7/23.0.0/jars/classes.jar -libraryjars $USER_HOME$/Documents/androidWorkSpace/android-sdk-macosx/extras/android/m2repository/com/android/support/appcompat-v7/23.0.0/appcompat-v7-23.0.0-sources.jar -libraryjars $USER_HOME$/.gradle/caches/modules-2/files-2.1/com.jakewharton/butterknife/7.0.1/d5d13ea991eab0252e3710e5df3d6a9d4b21d461/butterknife-7.0.1.jar -libraryjars $USER_HOME$/.gradle/caches/modules-2/files-2.1/com.jakewharton/butterknife/7.0.1/ad53343e57ae0969aaf451a19eef381abe2ad3a1/butterknife-7.0.1-sources.jar -libraryjars build/intermediates/exploded-aar/com.android.support/cardview-v7/23.0.0/jars/classes.jar -libraryjars $USER_HOME$/Documents/androidWorkSpace/android-sdk-macosx/extras/android/m2repository/com/android/support/cardview-v7/23.0.0/cardview-v7-23.0.0-sources.jar -libraryjars build/intermediates/exploded-aar/com.android.support/design/23.0.0/jars/classes.jar -libraryjars $USER_HOME$/.gradle/caches/modules-2/files-2.1/com.github.bumptech.glide/glide/3.6.1/86b122e640af09b0723e1fa44083c354ba6d9089/glide-3.6.1.jar -libraryjars $USER_HOME$/.gradle/caches/modules-2/files-2.1/com.github.bumptech.glide/glide/3.6.1/c84c6f18844d9ae76308619008d40277de5e77d3/glide-3.6.1-sources.jar -libraryjars $USER_HOME$/.gradle/caches/modules-2/files-2.1/com.google.code.gson/gson/2.3/5fc52c41ef0239d1093a1eb7c3697036183677ce/gson-2.3.jar -libraryjars $USER_HOME$/.gradle/caches/modules-2/files-2.1/com.google.code.gson/gson/2.3/21e31b9298ed677b17fcac6dd0eb0a82ec35adc2/gson-2.3-sources.jar -libraryjars $USER_HOME$/.gradle/caches/modules-2/files-2.1/org.apache.httpcomponents/httpcore/4.3.2/31fbbff1ddbf98f3aa7377c94d33b0447c646b6e/httpcore-4.3.2.jar -libraryjars $USER_HOME$/.gradle/caches/modules-2/files-2.1/org.apache.httpcomponents/httpcore/4.3.2/4809f38359edeea9487f747e09aa58ec8d3a54c5/httpcore-4.3.2-sources.jar -libraryjars build/intermediates/exploded-aar/com.rengwuxian.materialedittext/library/2.1.4/jars/classes.jar -libraryjars $USER_HOME$/.gradle/caches/modules-2/files-2.1/com.nineoldandroids/library/2.4.0/e9b63380f3a242dbdbf103a2355ad7e43bad17cb/library-2.4.0.jar -libraryjars $USER_HOME$/.gradle/caches/modules-2/files-2.1/com.nineoldandroids/library/2.4.0/83d41901478fa8795254244acbafd03f14224dab/library-2.4.0-sources.jar -libraryjars build/intermediates/exploded-aar/com.orhanobut/logger/1.10/jars/classes.jar -libraryjars build/intermediates/exploded-aar/com.android.support/recyclerview-v7/23.0.0/jars/classes.jar -libraryjars $USER_HOME$/Documents/androidWorkSpace/android-sdk-macosx/extras/android/m2repository/com/android/support/recyclerview-v7/23.0.0/recyclerview-v7-23.0.0-sources.jar -libraryjars $USER_HOME$/Documents/androidWorkSpace/android-sdk-macosx/extras/android/m2repository/com/android/support/support-annotations/23.0.0/support-annotations-23.0.0.jar -libraryjars $USER_HOME$/Documents/androidWorkSpace/android-sdk-macosx/extras/android/m2repository/com/android/support/support-annotations/23.0.0/support-annotations-23.0.0-sources.jar -libraryjars build/intermediates/exploded-aar/com.android.support/support-v4/23.0.0/jars/classes.jar -libraryjars build/intermediates/exploded-aar/com.android.support/support-v4/23.0.0/jars/libs/internal_impl-23.0.0.jar -libraryjars $USER_HOME$/Documents/androidWorkSpace/android-sdk-macosx/extras/android/m2repository/com/android/support/support-v4/23.0.0/support-v4-23.0.0-sources.jar -dontwarn com.loopj.android.http.** -keep class com.loopj.android.http.**{ *;} -dontwarn com.baidu.** -keep class com.baidu.**{ *;} -dontwarn com.bumptech.glide.** -keep class com.bumptech.glide.**{ *;} -dontwarn com.google.gson.** -keep class com.google.gson.http.**{ *;} -dontwarn com.nineoldandroids.** -keep class com.nineoldandroids.**{ *;} -dontwarn com.orhanobut.logger.** -keep class com.orhanobut.logger.**{ *;} -dontwarn com.rengwuxian.materialedittext.** -keep class com.rengwuxian.materialedittext.**{ *;} -dontwarn com.soundcloud.android.crop.** -keep class com.soundcloud.android.crop.**{ *;} -ignorewarning -dump class_files.txt -printseeds seeds.txt -printusage unused.txt -printmapping mapping.txt

求各位大佬解答,使用gson解析json数据出现错误

![图片说明](https://img-ask.csdn.net/upload/202001/20/1579491016_786224.png) 防火墙已关闭,用的真机调试,真机与电脑连的同一个wifi,依旧报这个错。。 求各位大佬解答

android 怎么从gson解析后,相应对象里get方法拿到所有Url,然后放在List中

android 怎么从gson解析后,相应对象里get方法拿到所有Url,然后放在List中 就是把 JSON中的 picBig 都提取出来装到一个List中 json用的是网上提供的 [JSON](http://www.imooc.com/api/teacher/?type=4&num=30 "")

android gson 解析不规则数组

[{"older":{"olderId":3,"olderPhoto":"http://localhost/onecard/photos/20160826103903686.gif","olderName":"李老","age":60,"sex":"女"},"equId":1000001,"pCode":"CN-SZ-00002-3241","adminPhone":"18722574812"}, {"older":{"olderId":1,"olderPhoto":"http://localhost/onecard/photos/20160808151252331.png","olderName":"刘老","age":63,"sex":"男"},"equId":1000002,"pCode":"CN-SZ-00002-3241","adminPhone":"18722574812"}, {"older":{"olderPhoto":"http://localhost/onecard/photos/null"},"equId":1000003,"pCode":"CN-SZ-00002-3241","adminPhone":"18722574812"}, {"older":{"olderPhoto":"http://localhost/onecard/photos/null"},"equId":1000005,"pCode":"CN-SZ-00002-3241","adminPhone":"18722574812"}, {"older":{"olderPhoto":"http://localhost/onecard/photos/null"},"equId":1000006,"pCode":"CN-SZ-00002-3241","adminPhone":"18722574812"}, {"older":{"olderPhoto":"http://localhost/onecard/photos/null"},"equId":1000007,"pCode":"CN-SZ-00002-3241","adminPhone":"18722574812"}, {"older":{"olderPhoto":"http://localhost/onecard/photos/null"},"equId":1000008,"pCode":"CN-SZ-00002-3241","adminPhone":"18722574812"}, {"older":{"olderPhoto":"http://localhost/onecard/photos/null"},"equId":1000010,"pCode":"CN-SZ-00002-3241","adminPhone":"18722574812"}, {"older":{"olderPhoto":"http://localhost/onecard/photos/null"},"equId":1000020,"pCode":"CN-SZ-00002-3241","adminPhone":"18722574812"}, {"older":{"olderId":2,"olderPhoto":"http://localhost/onecard/photos/20160810143737724.png","olderName":"啊啊啊","age":65,"sex":"男"},"equId":1000026,"pCode":"CN-SZ-00002-3241","adminPhone":"18522039001"}, {"older":{"olderPhoto":"http://localhost/onecard/photos/null"},"equId":1000028,"pCode":"CN-SZ-00002-3241","adminPhone":"17801091244"}, {"older":{"olderPhoto":"http://localhost/onecard/photos/null"},"equId":1000029,"pCode":"CN-SZ-00002-3241","adminPhone":"17801091244"}, {"older":{"olderPhoto":"http://localhost/onecard/photos/null"},"equId":1000030,"pCode":"CN-SZ-00002-3241","adminPhone":"17801091244"}, {"older":{"olderPhoto":"http://localhost/onecard/photos/null"},"equId":1000031,"pCode":"CN-SZ-00002-3241","adminPhone":"13352077638"}] 这种格式的该怎么解析呢?

Android studio 混淆代码

混淆代码直接报 Information:Gradle tasks [:app:assembleRelease] :MyLibray:compileLint :MyLibray:copyReleaseLint UP-TO-DATE :MyLibray:preBuild UP-TO-DATE :MyLibray:preReleaseBuild UP-TO-DATE :MyLibray:checkReleaseManifest :MyLibray:preDebugAndroidTestBuild UP-TO-DATE :MyLibray:preDebugBuild UP-TO-DATE :MyLibray:preDebugUnitTestBuild UP-TO-DATE :MyLibray:preReleaseUnitTestBuild UP-TO-DATE :MyLibray:prepareComAndroidSupportAppcompatV72301Library UP-TO-DATE :MyLibray:prepareComAndroidSupportSupportV42301Library UP-TO-DATE :MyLibray:prepareReleaseDependencies :MyLibray:compileReleaseAidl UP-TO-DATE :MyLibray:compileReleaseRenderscript UP-TO-DATE :MyLibray:generateReleaseBuildConfig UP-TO-DATE :MyLibray:generateReleaseAssets UP-TO-DATE :MyLibray:mergeReleaseAssets UP-TO-DATE :MyLibray:generateReleaseResValues UP-TO-DATE :MyLibray:generateReleaseResources UP-TO-DATE :MyLibray:mergeReleaseResources UP-TO-DATE :MyLibray:processReleaseManifest UP-TO-DATE :MyLibray:processReleaseResources UP-TO-DATE :MyLibray:generateReleaseSources UP-TO-DATE :MyLibray:processReleaseJavaRes UP-TO-DATE :MyLibray:compileReleaseJavaWithJavac UP-TO-DATE :MyLibray:extractReleaseAnnotations UP-TO-DATE :MyLibray:mergeReleaseProguardFiles UP-TO-DATE :MyLibray:packageReleaseJar UP-TO-DATE :MyLibray:compileReleaseNdk UP-TO-DATE :MyLibray:packageReleaseJniLibs UP-TO-DATE :MyLibray:packageReleaseLocalJar UP-TO-DATE :MyLibray:packageReleaseRenderscript UP-TO-DATE :MyLibray:packageReleaseResources UP-TO-DATE :MyLibray:bundleRelease UP-TO-DATE :app:preBuild UP-TO-DATE :app:preReleaseBuild UP-TO-DATE :app:checkReleaseManifest :app:preDebugBuild UP-TO-DATE :app:prepareComAndroidSupportAppcompatV72301Library UP-TO-DATE :app:prepareComAndroidSupportMultidex101Library UP-TO-DATE :app:prepareComAndroidSupportRecyclerviewV72301Library UP-TO-DATE :app:prepareComAndroidSupportSupportV42301Library UP-TO-DATE :app:prepareComCjjMaterialrefeshlayoutLibrary130Library UP-TO-DATE :app:prepareFinancialPHKXMyLibrayUnspecifiedLibrary UP-TO-DATE :app:prepareReleaseDependencies :app:compileReleaseAidl UP-TO-DATE :app:compileReleaseRenderscript UP-TO-DATE :app:generateReleaseBuildConfig UP-TO-DATE :app:generateReleaseAssets UP-TO-DATE :app:mergeReleaseAssets UP-TO-DATE :app:generateReleaseResValues UP-TO-DATE :app:generateReleaseResources UP-TO-DATE :app:mergeReleaseResources UP-TO-DATE :app:processReleaseManifest UP-TO-DATE :app:processReleaseResources UP-TO-DATE :app:generateReleaseSources UP-TO-DATE :app:processReleaseJavaRes UP-TO-DATE :app:compileReleaseJavaWithJavac UP-TO-DATE :app:compileReleaseNdk UP-TO-DATE :app:compileReleaseSources UP-TO-DATE :app:collectReleaseMultiDexComponents UP-TO-DATE :app:proguardRelease UP-TO-DATE :app:shrinkReleaseMultiDexComponents FAILED Error:Execution failed for task ':app:shrinkReleaseMultiDexComponents'. > java.io.IOException: The output jar [F:\save\YGJY\FinancialYGJY\app\build\intermediates\multi-dex\release\componentClasses.jar] must be specified after an input jar, or it will be empty. Information:BUILD FAILED Information:Total time: 1.666 secs Information:1 error Information:0 warnings Information:See complete output in console 这是什么意思? 下面是混淆代码,我基本都屏蔽了! -keep public class * extends android.app.Fragment -keep public class * extends android.app.Activity -keep public class * extends android.app.Application -keep public class * extends android.app.Service -keep public class * extends android.content.BroadcastReceiver -keep public class * extends android.content.ContentProvider -keep public class * extends android.app.backup.BackupAgentHelper -keep public class * extends android.preference.Preference -keep public class * extends android.support.v4.** -keepclasseswithmembernames class * { # 保持 native 方法不被混淆 native <methods>; } -keepclasseswithmembers class * { # 保持自定义控件类不被混淆 public <init>(android.content.Context, android.util.AttributeSet); } -keepclasseswithmembers class * {# 保持自定义控件类不被混淆 public <init>(android.content.Context, android.util.AttributeSet, int); } -keepclassmembers class * extends android.app.Activity { # 保持自定义控件类不被混淆 public void *(android.view.View); } -keepclassmembers enum * { # 保持枚举 enum 类不被混淆 public static **[] values(); public static ** valueOf(java.lang.String); } -keep class * implements android.os.Parcelable { # 保持 Parcelable 不被混淆 public static final android.os.Parcelable$Creator *; } -keep public class * implements java.io.Serializable{ public protected private *; } -keep class com.baidu.**{*;} -dontwarn com.baidu.** -keep class com.google.gson.**{*;} -dontwarn com.google.gson.** #bcprov-ext-jdk15on -dontwarn org.bouncycastle.** #commons-lang-2.4 -dontwarn org.apache.commons.lang.** #adnroid-async-http-1.4.8 -dontwarn com.loopj.android.http.** #androidquery -dontwarn com.androidquery.** #esb -dontwarn com.hansy.qhxg.restClient.** #gson-2.2.4 -dontwarn com.google.gson.** #httpcore-4.3.jar -dontwarn org.apache.http.** #slf4j-api-1.7.5 -dontwarn org.slf4j.** #universal-img-loader -dontwarn com.nostra13.universalimageloader.**

Android Gson解析boolean错误

今天突然出现了这种怪异的现象,我使用gson来解析服务器返回的json数据,json中有个字段isSuccess,是boolean类型,今天在请求的时候始终得不到正确的回应,一调试才知道isSuccess为false,但是返回的json中isSuccess是为true的,这种情况也不是每次都会发生,有时候又是正常的,服务器返回的json也是一样的,但是就会出现isSuccess会被解析成false的情况,有人遇到过这种情况吗? 发现了新的情况,我手动截取json中isSuccess字段,然后使用Boolean.valueOf(String)来转换,但是怪异的情况出现了,String参数为true,转换出来的value确实false,彻底凌乱了 我换了个方法,不用Boolean.valueOf(String)了,自己判断字符串来转换为true或者false,倒是不会出现这个问题了,不过上述问题留在这,等待大神来解答 找到问题所在了,我这里有个功能需要用到反射,我用反射取了Boolean.value,因为是private final修饰符,所以用了函数Field.setAccessible(true),然后通过反射的方法给Boolean.value设置了值,结果后面Boolean无论怎么赋值都是前面设置的那个值了,所以在反射给Boolean.value设置了值后,要调用Field.setAccessible(false)就可以了,次奥,恼火啊

Android 用Gson解析从服务器获取的JSON数据,存入SQLite数据库

![图片说明](https://img-ask.csdn.net/upload/201511/02/1446428881_878901.png) 比如这么一段JSON数据,用Gson解析后存在这几个model里面 ![图片说明](https://img-ask.csdn.net/upload/201511/02/1446429073_729247.png) 然后想存入SQLite本地数据库中。 如果数据库建表 那要怎么建?字段里面需要List<>而且还需要关联其他表。 而且我不知道这种方法是不是好,网上找到一种简便的方法。每次取得JSON数据以String类型保存到SharedPreference中,然后用的时候取出来再用Gson解析,我感觉这挺方便的,但不知实际开发中是怎么用的?说实话有时候我感觉Android上的SQLite数据库有点多余。。

Gson解析泛型对象有问题

比如需要填入的对象 class A<T>{ public T aaa; } 用Gson解析的时候 已经指定了T的类型是另一个实体类,但是解析出来的 “aaa” 是一个串String

android 混淆报错 请看图片

# To enable ProGuard in your project, edit project.properties # to define the proguard.config property as described in that file. # # Add project specific ProGuard rules here. # By default, the flags in this file are appended to flags specified # in ${sdk.dir}/tools/proguard/proguard-android.txt # You can edit the include path and order by changing the ProGuard # include property in project.properties. # # For more details, see # http://developer.android.com/guide/developing/tools/proguard.html # Add any project specific keep options here: # If your project uses WebView with JS, uncomment the following # and specify the fully qualified class name to the JavaScript interface # class: #-keepclassmembers class fqcn.of.javascript.interface.for.webview { # public *; #} #代码混淆压缩比例 -optimizationpasses 5 #混淆时不使用大小写混合,混淆后的类名为小写 -dontusemixedcaseclassnames #指定不去忽虑非公共的库的类 -dontskipnonpubliclibraryclasses #指定不去忽虑非公共的库的类的成员 -dontskipnonpubliclibraryclassmembers #不做预校验,preverify是proguard的四个步骤之一 #Android不需要preverify,去掉这一步可加快混淆速度 -dontpreverify #有了verbose这句话,混淆后就会产生映射文件 #包含有类名 -> 混淆后类名的映射关系 -verbose -printmapping priguardMapping.txt #指定混淆时采用的算法,后面的参数是一个过滤器 #这个过滤器是谷歌推荐的算法,一般不改变 -optimizations !code/simplification/artithmetic,!field/*,!class/merging/* #保护代码中的Annotation不被混淆 #这在JSON实体映射时非常重要,比如fastJson -keepattributes *Annotation* #避免混淆泛型 #这在JSON实体映射时非常重要,比如fastJson -keepattributes Signature #抛出异常时保留代码行号 -keepattributes Exceptions,InnerClasses,Signature,Deprecated, SourceFile,LineNumberTable,EnclosingMethod #保留所有的本地native方法不被混淆 -keepclasseswithmembernames class * { native <methods>; } #保留了继承Activity,Application这些类的子类 # 比如第一行就保证了所有Activity的子类不要被混淆 -keep public class * extends android.app.Activity -keep public class * extends android.app.Application -keep public class * extends android.app.Service -keep public class * extends android.content.BroadcastReceiver -keep public class * extends android.content.ContentProvider -keep public class * extends android.app.backup.BackupAgentHelper -keep public class * extends android.preference.Preference -keep public class * extends android.view.View -keep public class com.android.vending.licensing.ILicensingService #保留Activity中的方法参数是view的方法 #从而是我在layout里面编写onClick就不会被影响 -keepclassmembers class * extends android.app.Activity{ public void *(android.view.View); } #枚举类不被混淆 -keepclassmembers enum * { public static **[] values(); public static ** valueOf(java.lang.String); } # 保留自定义控件(继承自View)不能被混淆 -keep public class * extends android.view.View { public <init>(android.content.Context); public <init>(android.content.Context, android.util.AttributeSet); public <init>(android.content.Context, android.util.AttributeSet, int); public void set*(***); *** get* (); } # 保留Parcelable序列化的类不能被混淆 -keep class * implements android.os.Parcelable{ public static final android.os.Parcelable$Creator *; } # 保留Serializable 序列化的类不被混淆 -keepclassmembers class * implements java.io.Serializable { static final long serialVersionUID; private static final java.io.ObjectStreamField[] serialPersistentFields; !static !transient <fields>; private void writeObject(java.io.ObjectOutputStream); private void readObject(java.io.ObjectInputStream); java.lang.Object writeReplace(); java.lang.Object readResolve(); } # 对R文件下的所有类及其方法,都不能被混淆 -keepclassmembers class **.R$* { *; } # 对于带有回调函数onXXEvent的,不能混淆 -keepclassmembers class * { void *(**On*Event); } #实体类不参与混淆全部忽略 -keep class com.lefu.puhui.bases.newwork.reqmodel.** {*; } -keep class com.lefu.puhui.bases.newwork.respmodel.** { *; } -keep class com.lefu.puhui.bases.update.entity.Channel { *; } -keep class com.lefu.puhui.bases.UserInfo {*;} -keep class com.lefu.puhui.bases.GladlyStuLoan {*;} -keep class com.lefu.puhui.bases.utils.CiphersUtil {*;} -keep class com.lefu.puhui.bases.utils.SignMd5Util {*;} -keep class com.lefu.puhui.bases.utils.MyToast {*;} -keep class com.lefu.puhui.bases.utils.GenerateDeviceUniqueID {*;} -keep class com.lefu.puhui.bases.utils.DataCleanManager {*;} -keep class com.lefu.puhui.bases.utils.ViewHolder {*;} -keep class com.lefu.puhui.models.home.network.reqmodel.** { *; } -keep class com.lefu.puhui.models.home.network.respmodel.** { *; } -keep class com.lefu.puhui.models.main.network.reqmodel.** { *; } -keep class com.lefu.puhui.models.main.network.respmodel.** { *; } -keep class com.lefu.puhui.models.makemoney.network.reqmodel.** { *; } -keep class com.lefu.puhui.models.makemoney.network.respmodel.** { *; } -keep class com.lefu.puhui.models.more.network.reqmodel.** { *; } -keep class com.lefu.puhui.models.more.network.respmodel.** { *; } -keep class com.lefu.puhui.models.personalcenter.network.reqmodel.** { *; } -keep class com.lefu.puhui.models.personalcenter.network.respmodel.** { *; } #BaseFramework -keep class com.bfec.BaseFramework.libraries.common.model.AccessResult {*;} -keep class * extends com.bfec.BaseFramework.libraries.common.model.AccessResult {*;} -keep class com.bfec.BaseFramework.libraries.common.model.RequestModel {*;} -keep class * extends com.bfec.BaseFramework.libraries.common.model.RequestModel {*;} -keep class com.bfec.BaseFramework.libraries.common.model.ResponseModel {*;} -keep class * extends com.bfec.BaseFramework.libraries.common.model.ResponseModel {*;} # AMap_Location_V2.4.0 -libraryjars libs/AMap_Location_V2.4.0_20160308.jar -keep class com.amap.** {*;} -keep class com.autonavi.** {*;} -keep class com.loc.** {*;} -dontwarn com.amap.** -dontwarn com.autonavi.** -dontwarn com.loc.** #android-support-v4 -libraryjars ../BaseFramework/libs/android-support-v4.jar -keep class android.support.v4.** {*;} -keep interface android.support.v4.** {*;} -keep public class * extends android.support.v4.** {*;} -dontwarn android.support.v4.** -dontwarn android.support.annotaion.** #bugly_crash_release__2.1.5 -libraryjars libs/bugly_crash_release__2.1.5.jar -dontwarn com.tencent.bugly.** -keep public class com.tencent.bugly.**{*;} #butterknife -libraryjars libs/ButterKnife_v7.0.1.jar -keep class butterknife.** { *; } -dontwarn butterknife.internal.** -keep class **$$ViewBinder { *; } -keepclasseswithmembernames class * { @butterknife.* <fields>; } -keepclasseswithmembernames class * { @butterknife.* <methods>; } #commons-codec-1.10 -libraryjars libs/commons-codec-1.10.jar -keep class org.apache.** { *; } #CommonUtil-1.0.8 -libraryjars libs/CommonUtil-1.0.8.jar -keep class com.pay.** { *; } -dontwarn com.pay.** #jpush-android-2.1.3 -libraryjars libs/jpush-android-2.1.3.jar -dontoptimize -dontwarn cn.jpush.** -keep class cn.jpush.** { *; } -dontwarn com.google.** -keep class com.google.gson.** {*;} -dontwarn com.google.** -keep class com.google.protobuf.** {*;} #mta-sdk-1.6.2 -keep class com.tencent.** { *; } #pinyin4j -libraryjars libs/pinyin4j-2.5.0.jar -dontwarn net.soureceforge.pinyin4j.** -dontwarn demo.** -keep class net.sourceforge.pinyin4j.** { *;} -keep class demo.** { *;} #umeng -libraryjars libs/umeng_social_sdk.jar -dontwarn com.umeng.** -keep class com.umeng*.** {*; } #niversal-image-loader -libraryjars libs/Universal_Image_Loader_v1.9.4.jar -keep class com.nostra13.universalimageloader.** {*;} -dontwarn com.nostra13.universalimageloader.** #微博报下所有类及类里面的内容都不要混淆 -keep class com.sina.weibo.sdk.** { *; } # Gson -libraryjars ../BaseFramework/libs/gson.jar -keep class sun.misc.Unsafe {*;} -keep class com.google.gson.** {*;} -keep interface com.google.gson.** {*;} -dontwarn com.google.gson.** #httpmime -libraryjars ../WelabSDK/libs/httpmime-4.1.1.jar -keep class org.apache.http.** {*;} -dontwarn org.apache.http.** #LitePal -libraryjars ../BaseFramework/libs/litepal.jar -dontwarn org.litepal.* -keep class org.litepal.** { *; } -keep enum org.litepal.** -keep interface org.litepal.** { *; } -keep public class * extends org.litepal.** -keepclassmembers class * extends org.litepal.crud.DataSupport{ *; } #pulltorefresh -libraryjars ../Library -dontwarn com.handmark.pulltorefresh.library.** -keep class com.handmark.pulltorefresh.library.** { *;} -dontwarn com.handmark.pulltorefresh.library.extras.** -keep class com.handmark.pulltorefresh.library.extras.** { *;} -dontwarn com.handmark.pulltorefresh.library.internal.** -keep class com.handmark.pulltorefresh.library.internal.** { *;} #fastjson -libraryjars ../WelabSDK/libs/fastjson-1.1.45.android.jar -keep class com.alibaba.fastjson.** { *; } -dontwarn com.alibaba.fastjson.** #org.apache.http.legacy -libraryjars ../WelabSDK/libs/org.apache.http.legacy.jar -keep class android.net.compatibility.** {*;} -keep class android.net.http.** {*;} -keep class com.android.internal.http.multipart.** {*;} -keep class org.apache.** {*;} -dontwarn android.net.** -dontwarn org.apache.http.** #PersonalSocialReportSDK -libraryjars ../WelabSDK/libs/PersonalSocialReportSDK.jar -dontwarn info.kuaicha.** #jna-min -libraryjars ../WelabFaceCheck/libs/jna-min.jar -dontwarn com.sun.** -keep class com.sun.jna.Native -ignorewarnings ![图片说明](https://img-ask.csdn.net/upload/201606/16/1466066181_83691.png)

Gson解析json数据返回空值

方法1: String str = object.toString(); Gson gson = new GsonBuilder().create(); complaintDetail = gson.fromJson(str, ComplaintDetail.class); ``` 方法2: if (object.has("node")) { complaintDetail.setNode(object.getString("node")); } if (object.has("operateStarttime")) { complaintDetail.setOperateStarttime(object .getString("operateStarttime")); } if (object.has("operateDepartment")) { complaintDetail.setOperateDepartment(object .getString("operateDepartment")); } ``` 采用方法1解析,如果这个app采用了签名 就会显示不出这条数据,不签名则可以正常显示数据,这个数据是通过接口获取的,但是采用方法2解析则不会出现问题,那么 使用Gson解析需要有什么注意的吗 或者是有什么限制条件吗,

在线等!关于Gson解析出错以及如何取List中值的问题

起因是在解析一个json string 的时候,碰到了2层,第一层是2个string 类型的字段,然后是List的格式的json string。 我定义为List<T> t,解析失败了,调试的时候显示为null,然而把List<T>换成 object以后解析成功了,调试栏显示为 ArrayList。。。请问是问什么?还有如果解析出来,要怎么写代码取得List<T>中的某个字段的值?

安卓中gson解析的小问题

在gson解析中,什么场景下使用返回对象的结果,什么场景下使用返回集合的结果?? 我见过demo中,json中有字段又有集合的,然后返回了对象,也见过有字段和集合的但是返回了集合

在中国程序员是青春饭吗?

今年,我也32了 ,为了不给大家误导,咨询了猎头、圈内好友,以及年过35岁的几位老程序员……舍了老脸去揭人家伤疤……希望能给大家以帮助,记得帮我点赞哦。 目录: 你以为的人生 一次又一次的伤害 猎头界的真相 如何应对互联网行业的「中年危机」 一、你以为的人生 刚入行时,拿着傲人的工资,想着好好干,以为我们的人生是这样的: 等真到了那一天,你会发现,你的人生很可能是这样的: ...

程序员请照顾好自己,周末病魔差点一套带走我。

程序员在一个周末的时间,得了重病,差点当场去世,还好及时挽救回来了。

我以为我学懂了数据结构,直到看了这个导图才发现,我错了

数据结构与算法思维导图

String s = new String(" a ") 到底产生几个对象?

老生常谈的一个梗,到2020了还在争论,你们一天天的,哎哎哎,我不是针对你一个,我是说在座的各位都是人才! 上图红色的这3个箭头,对于通过new产生一个字符串(”宜春”)时,会先去常量池中查找是否已经有了”宜春”对象,如果没有则在常量池中创建一个此字符串对象,然后堆中再创建一个常量池中此”宜春”对象的拷贝对象。 也就是说准确答案是产生了一个或两个对象,如果常量池中原来没有 ”宜春” ,就是两个。...

技术大佬:我去,你写的 switch 语句也太老土了吧

昨天早上通过远程的方式 review 了两名新来同事的代码,大部分代码都写得很漂亮,严谨的同时注释也很到位,这令我非常满意。但当我看到他们当中有一个人写的 switch 语句时,还是忍不住破口大骂:“我擦,小王,你丫写的 switch 语句也太老土了吧!” 来看看小王写的代码吧,看完不要骂我装逼啊。 private static String createPlayer(PlayerTypes p...

Linux面试题(2020最新版)

文章目录Linux 概述什么是LinuxUnix和Linux有什么区别?什么是 Linux 内核?Linux的基本组件是什么?Linux 的体系结构BASH和DOS之间的基本区别是什么?Linux 开机启动过程?Linux系统缺省的运行级别?Linux 使用的进程间通信方式?Linux 有哪些系统日志文件?Linux系统安装多个桌面环境有帮助吗?什么是交换空间?什么是root帐户什么是LILO?什...

将一个接口响应时间从2s优化到 200ms以内的一个案例

一、背景 在开发联调阶段发现一个接口的响应时间特别长,经常超时,囧… 本文讲讲是如何定位到性能瓶颈以及修改的思路,将该接口从 2 s 左右优化到 200ms 以内 。 二、步骤 2.1 定位 定位性能瓶颈有两个思路,一个是通过工具去监控,一个是通过经验去猜想。 2.1.1 工具监控 就工具而言,推荐使用 arthas ,用到的是 trace 命令 具体安装步骤很简单,大家自行研究。 我的使用步骤是...

学历低,无法胜任工作,大佬告诉你应该怎么做

微信上收到一位读者小涛的留言,大致的意思是自己只有高中学历,经过培训后找到了一份工作,但很难胜任,考虑要不要辞职找一份他能力可以胜任的实习工作。下面是他留言的一部分内容: 二哥,我是 2016 年高中毕业的,考上了大学但没去成,主要是因为当时家里经济条件不太允许。 打工了三年后想学一门技术,就去培训了。培训的学校比较垃圾,现在非常后悔没去正规一点的机构培训。 去年 11 月份来北京找到了一份工...

JVM内存结构和Java内存模型别再傻傻分不清了

讲一讲什么是Java内存模型 Java内存模型虽说是一个老生常谈的问题 ,也是大厂面试中绕不过的,甚至初级面试也会问到。但是真正要理解起来,还是相当困难,主要这个东西看不见,摸不着。 这是一个比较开放的题目,面试官主要想考察的是对Java内存模型的了解到了什么程度了,然后根据回答进行进一步的提问 下面,我们就这个问题的回答列一下我们的思路 具体的思路如下: 说一说Java内存模型的缘由 简略辨析...

和黑客斗争的 6 天!

互联网公司工作,很难避免不和黑客们打交道,我呆过的两家互联网公司,几乎每月每天每分钟都有黑客在公司网站上扫描。有的是寻找 Sql 注入的缺口,有的是寻找线上服务器可能存在的漏洞,大部分都...

Google 与微软的浏览器之争

浏览器再现“神仙打架”。整理 | 屠敏头图 | CSDN 下载自东方 IC出品 | CSDN(ID:CSDNnews)从 IE 到 Chrome,再从 Chrome 到 Edge,微软与...

讲一个程序员如何副业月赚三万的真实故事

loonggg读完需要3分钟速读仅需 1 分钟大家好,我是你们的校长。我之前讲过,这年头,只要肯动脑,肯行动,程序员凭借自己的技术,赚钱的方式还是有很多种的。仅仅靠在公司出卖自己的劳动时...

上班一个月,后悔当初着急入职的选择了

最近有个老铁,告诉我说,上班一个月,后悔当初着急入职现在公司了。他之前在美图做手机研发,今年美图那边今年也有一波组织优化调整,他是其中一个,在协商离职后,当时捉急找工作上班,因为有房贷供着,不能没有收入来源。所以匆忙选了一家公司,实际上是一个大型外包公司,主要派遣给其他手机厂商做外包项目。**当时承诺待遇还不错,所以就立马入职去上班了。但是后面入职后,发现薪酬待遇这块并不是HR所说那样,那个HR自...

女程序员,为什么比男程序员少???

昨天看到一档综艺节目,讨论了两个话题:(1)中国学生的数学成绩,平均下来看,会比国外好?为什么?(2)男生的数学成绩,平均下来看,会比女生好?为什么?同时,我又联想到了一个技术圈经常讨...

搜狗输入法也在挑战国人的智商!

故事总是一个接着一个到来...上周写完《鲁大师已经彻底沦为一款垃圾流氓软件!》这篇文章之后,鲁大师的市场工作人员就找到了我,希望把这篇文章删除掉。经过一番沟通我先把这篇文章从公号中删除了...

85后蒋凡:28岁实现财务自由、34岁成为阿里万亿电商帝国双掌门,他的人生底层逻辑是什么?...

蒋凡是何许人也? 2017年12月27日,在入职4年时间里,蒋凡开挂般坐上了淘宝总裁位置。 为此,时任阿里CEO张勇在任命书中力赞: 蒋凡加入阿里,始终保持创业者的冲劲,有敏锐的...

总结了 150 余个神奇网站,你不来瞅瞅吗?

原博客再更新,可能就没了,之后将持续更新本篇博客。

副业收入是我做程序媛的3倍,工作外的B面人生是怎样的?

提到“程序员”,多数人脑海里首先想到的大约是:为人木讷、薪水超高、工作枯燥…… 然而,当离开工作岗位,撕去层层标签,脱下“程序员”这身外套,有的人生动又有趣,马上展现出了完全不同的A/B面人生! 不论是简单的爱好,还是正经的副业,他们都干得同样出色。偶尔,还能和程序员的特质结合,产生奇妙的“化学反应”。 @Charlotte:平日素颜示人,周末美妆博主 大家都以为程序媛也个个不修边幅,但我们也许...

MySQL数据库面试题(2020最新版)

文章目录数据库基础知识为什么要使用数据库什么是SQL?什么是MySQL?数据库三大范式是什么mysql有关权限的表都有哪几个MySQL的binlog有有几种录入格式?分别有什么区别?数据类型mysql有哪些数据类型引擎MySQL存储引擎MyISAM与InnoDB区别MyISAM索引与InnoDB索引的区别?InnoDB引擎的4大特性存储引擎选择索引什么是索引?索引有哪些优缺点?索引使用场景(重点)...

如果你是老板,你会不会踢了这样的员工?

有个好朋友ZS,是技术总监,昨天问我:“有一个老下属,跟了我很多年,做事勤勤恳恳,主动性也很好。但随着公司的发展,他的进步速度,跟不上团队的步伐了,有点...

我入职阿里后,才知道原来简历这么写

私下里,有不少读者问我:“二哥,如何才能写出一份专业的技术简历呢?我总感觉自己写的简历太烂了,所以投了无数份,都石沉大海了。”说实话,我自己好多年没有写过简历了,但我认识的一个同行,他在阿里,给我说了一些他当年写简历的方法论,我感觉太牛逼了,实在是忍不住,就分享了出来,希望能够帮助到你。 01、简历的本质 作为简历的撰写者,你必须要搞清楚一点,简历的本质是什么,它就是为了来销售你的价值主张的。往深...

离职半年了,老东家又发 offer,回不回?

有小伙伴问松哥这个问题,他在上海某公司,在离职了几个月后,前公司的领导联系到他,希望他能够返聘回去,他很纠结要不要回去? 俗话说好马不吃回头草,但是这个小伙伴既然感到纠结了,我觉得至少说明了两个问题:1.曾经的公司还不错;2.现在的日子也不是很如意。否则应该就不会纠结了。 老实说,松哥之前也有过类似的经历,今天就来和小伙伴们聊聊回头草到底吃不吃。 首先一个基本观点,就是离职了也没必要和老东家弄的苦...

男生更看重女生的身材脸蛋,还是思想?

往往,我们看不进去大段大段的逻辑。深刻的哲理,往往短而精悍,一阵见血。问:产品经理挺漂亮的,有点心动,但不知道合不合得来。男生更看重女生的身材脸蛋,还是...

什么时候跳槽,为什么离职,你想好了么?

都是出来打工的,多为自己着想

程序员为什么千万不要瞎努力?

本文作者用对比非常鲜明的两个开发团队的故事,讲解了敏捷开发之道 —— 如果你的团队缺乏统一标准的环境,那么即使勤劳努力,不仅会极其耗时而且成果甚微,使用...

为什么程序员做外包会被瞧不起?

二哥,有个事想询问下您的意见,您觉得应届生值得去外包吗?公司虽然挺大的,中xx,但待遇感觉挺低,马上要报到,挺纠结的。

当HR压你价,说你只值7K,你该怎么回答?

当HR压你价,说你只值7K时,你可以流畅地回答,记住,是流畅,不能犹豫。 礼貌地说:“7K是吗?了解了。嗯~其实我对贵司的面试官印象很好。只不过,现在我的手头上已经有一份11K的offer。来面试,主要也是自己对贵司挺有兴趣的,所以过来看看……”(未完) 这段话主要是陪HR互诈的同时,从公司兴趣,公司职员印象上,都给予对方正面的肯定,既能提升HR的好感度,又能让谈判气氛融洽,为后面的发挥留足空间。...

面试:第十六章:Java中级开发(16k)

HashMap底层实现原理,红黑树,B+树,B树的结构原理 Spring的AOP和IOC是什么?它们常见的使用场景有哪些?Spring事务,事务的属性,传播行为,数据库隔离级别 Spring和SpringMVC,MyBatis以及SpringBoot的注解分别有哪些?SpringMVC的工作原理,SpringBoot框架的优点,MyBatis框架的优点 SpringCould组件有哪些,他们...

面试阿里p7,被按在地上摩擦,鬼知道我经历了什么?

面试阿里p7被问到的问题(当时我只知道第一个):@Conditional是做什么的?@Conditional多个条件是什么逻辑关系?条件判断在什么时候执...

终于懂了TCP和UDP协议区别

终于懂了TCP和UDP协议区别

立即提问
相关内容推荐