不要使用 android 内置的 org.json [英] Don't use android's built in org.json

查看:36
本文介绍了不要使用 android 内置的 org.json的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我编写了一个使用 org.json (A) 来自 json 的库.org,假设 Android 使用相同的(在 android 中它也被称为 org.json (B),只是它错过了一些相对关键的功能).现在我想做的是设置我的 gradle,以便我的项目使用 org.json (A) 而不是 org.json (B).我尝试将以下内容添加到我的 app.gradle:

I've written a library that uses org.json (A) from json.org, under the assumption that Android used the same (in android it's also called org.json (B), just that it misses some relatively critical features). Now what I'd like to do is set up my gradle, so that my project uses org.json (A) instead of org.json (B). I've tried adding the following to my app.gradle:

android {
    blabla
    defaultConfig {
        blabla
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }

    sourceSets{
        main{
            java{
                exclude 'org/json/**'
            }
        }
    }

}

然而,这似乎不起作用.我仍然可以使用 Android 的 org.json (B),并且在键入 new JSONObject() 时,它仍然使用 Android 的实现.我该如何解决这个问题?

However, this does not seem to work. I still have Android's org.json (B) available to me, and when typing new JSONObject() it still uses Android's implementation. How could I fix this?

推荐答案

我该如何解决这个问题?

How could I fix this?

将您的从 org.json 更改为 org.something.else.您不能用应用程序中的软件包替换系统提供的软件包,即使是您自己的进程也是如此.您不控制运行时类路径,固件总是获胜.

Change yours from org.json to org.something.else. You cannot replace system-supplied packages with ones from an app, even for your own process. You do not control the runtime classpath, and the firmware always wins.

或者,从 org.json 切换到性能更好的东西,例如 Gson 或 Jackson.

Or, switch from org.json to something that performs better, such as Gson or Jackson.

这篇关于不要使用 android 内置的 org.json的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆