Android Studio 使用fastjson报错求解

发布于 2021-11-28 04:47:38 字数 2903 浏览 947 评论 9

Android代码:

    private void testFastJson() {
        TestBean tb = JSON.parseObject("{age: 20}", TestBean.class);  // 报异常
    }

build.gradle:

apply plugin: 'com.android.application'

android {
    compileSdkVersion 21
    buildToolsVersion "21.0.2"

    defaultConfig {
        applicationId "com.example"
        minSdkVersion 14
        targetSdkVersion 21
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:appcompat-v7:21.0.2'
}

异常信息:

java.lang.NoClassDefFoundError: java.awt.Color
            at com.alibaba.fastjson.parser.deserializer.ColorDeserializer.getAutowiredFor(ColorDeserializer.java:72)
            at com.alibaba.fastjson.parser.ParserConfig.getDeserializer(ParserConfig.java:293)
            at com.alibaba.fastjson.parser.ParserConfig.getDeserializer(ParserConfig.java:269)
            at com.alibaba.fastjson.parser.DefaultJSONParser.parseObject(DefaultJSONParser.java:460)
            at com.alibaba.fastjson.JSON.parseObject(JSON.java:206)
            at com.alibaba.fastjson.JSON.parseObject(JSON.java:166)
            at com.alibaba.fastjson.JSON.parseObject(JSON.java:287)
            at com.example.MainActivity.testFastJson(MainActivity.java:31)
            at com.example.MainActivity.access$000(MainActivity.java:14)
            at com.example.MainActivity$1.onClick(MainActivity.java:25)
            at android.view.View.performClick(View.java:4438)
            at android.view.View$PerformClick.run(View.java:18422)
            at android.os.Handler.handleCallback(Handler.java:733)
            at android.os.Handler.dispatchMessage(Handler.java:95)
            at android.os.Looper.loop(Looper.java:136)
            at android.app.ActivityThread.main(ActivityThread.java:5001)
            at java.lang.reflect.Method.invokeNative(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:515)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601)
            at de.robv.android.xposed.XposedBridge.main(XposedBridge.java:132)
            at dalvik.system.NativeStart.main(Native Method)

环境: 

Mac OS X 10.10 |  JDK 1.7  | Android Studio 1.0.0

// 编译的时候没问题, jdk下面有找到对应的类. (osc上传截图有限制, 不传图了)

// OS X下面用Eclipse是正常的

// Windows 环境的Android Studio还没试 - -

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(9

顾忌 2021-11-30 05:13:48

是的 正在适应...

无人问我粥可暖 2021-11-30 05:13:36

Gradle 也不熟 - -

疾风者 2021-11-30 05:12:57

对AndroidStudio还是很生硬吖

月亮是我掰弯的 2021-11-30 05:12:51

有人说Android 不含java rt.jar  但是用eclipse使用fastjson是OK的  

Android Studio 是不是要修改编译设置?但是也不知道改成什么样子...

@wenshao 大大帮忙看看可能什么原因

一人独醉 2021-11-30 04:45:18

thx 我去找找 我不知道是哪个版本, 之前别人添加到项目的

灵芸 2021-11-30 04:40:09

https://github.com/alibaba/fastjson/wiki/Android%E7%89%88%E6%9C%AC

为你鎻心 2021-11-30 03:25:26

回复
多谢! 去找了fastjson for android 的 jar 就可以了

明媚如初 2021-11-29 11:44:38

回复
正解

水水月牙 2021-11-28 08:41:42

@atearsan

fastjson有专门的Android版本 。在ParserConfig.java和SerializeConfig.java

中去掉了关于awt的相关的代码

我不知道你是用的那个?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文