开发者社区> 问答> 正文

Android Studio 使用fastjson报错求解?报错

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还没试 - -

展开
收起
爱吃鱼的程序员 2020-06-14 18:47:06 1118 0
1 条回答
写回答
取消 提交回答
  • https://developer.aliyun.com/profile/5yerqm5bn5yqg?spm=a2c6h.12873639.0.0.6eae304abcjaIB

    @ atearsan

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

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

    我不知道你是用的那个?

    回复 @atearsan:正解回复 @char1st:多谢!去找了fastjsonforandroid的jar就可以了https://github.com/alibaba/fastjson/wiki/Android%E7%89%88%E6%9C%ACthx我去找找我不知道是哪个版本,之前别人添加到项目的

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

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

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

    对AndroidStudio还是很生硬吖

    Gradle也不熟--是的正在适应...
    2020-06-14 18:47:24
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
58同城Android客户端Walle框架演进与实践之路 立即下载
Android组件化实现 立即下载
蚂蚁聚宝Android秒级编译——Freeline 立即下载