Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/208.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android JacksonParser数据绑定和核心原因“;找到APK的重复文件;?_Android_Json_Jar_Jackson - Fatal编程技术网

Android JacksonParser数据绑定和核心原因“;找到APK的重复文件;?

Android JacksonParser数据绑定和核心原因“;找到APK的重复文件;?,android,json,jar,jackson,Android,Json,Jar,Jackson,我正在尝试学习如何使用jackson解析器,以便对json数据进行更有效的解析。我有这些jar文件: 在代码中,我只是尝试将json解析为一个对象数组: @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); String json = ReadFr

我正在尝试学习如何使用jackson解析器,以便对json数据进行更有效的解析。我有这些jar文件:

在代码中,我只是尝试将json解析为一个对象数组:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    String json = ReadFromRaw(this, R.raw.json);
    ArrayList<Category> categories = null;
    try {
        ObjectMapper mapper = new ObjectMapper(); 
        categories = mapper.readValue(json, mapper.getTypeFactory().constructCollectionType(List.class, Category.class));
        // categories = mapper.readValue(json, new TypeReference<List<Category>>() {});
    } catch (Exception e) {
        Log.e("MainActivity", "Error: " + e.getMessage());
    }

    SimpleListView myList = (SimpleListView) findViewById(R.id.myList);
    myList.setAdapterWithItems(GetAdapter(categories));
} 
一切正常,没有错误或警告。但当我尝试编译时,它会出现以下错误:

[2013-04-25 09:32:08 - Training - JacksonParser] Error generating final archive: Found duplicate file for APK: LICENSE
Origin 1: C:\~\workspace\Training - JacksonParser\libs\jackson-core-2.2.0.jar
Origin 2: C:\~\workspace\Training - JacksonParser\libs\jackson-databind-2.2.0.jar
当我在google上搜索这个错误时,它说这些jar文件上有一些共同的类。我不知道该怎么做。。。我做错什么了吗?还是我做了什么错事

提前谢谢,谢谢你的帮助。

我也有同样的问题。 所以,我使用旧版本

jackson-core-asl-1.9.12.jar

jackson-mapper-asl-1.9.12.jar


您可以从同一页面的“最新稳定1.x版本”下载。

2.2.0版本中已报告此问题,请参阅;但应在2.2.1中解决


编辑:主要问题是这些文件需要位于jar中的
META-INF/
下;如果是这样,就没有冲突。这就是2.2.1发布后将要做的。

有点痛苦,但手动重建jar并没有那么糟糕

git clone git://github.com/FasterXML/jackson-core.git
git clone git://github.com/FasterXML/jackson-databind.git
cd jackson-core
git checkout jackson-core-2.2.0b # not sure what the "b" is about
mv src/main/resources/NOTICE src/main/resources/META-INF/
mv src/main/resources/LICENSE src/main/resources/META-INF/
mvn install
# jar will be at target/jackson-core-2.2.0.jar

cd ../jackson-databind
git checkout jackson-databind-2.2.0
mv src/main/resources/NOTICE src/main/resources/META-INF/
mv src/main/resources/LICENSE src/main/resources/META-INF/
mvn install
# jar will be at target/jackson-databind-2.2.0.jar
唉。多痛苦啊


编辑:事实证明,大多数事情都需要注释。这个练习留给读者。我还发现您可以。

正如steve在上次编辑中所说,您可以从Maven下载最新的JAR:

我建议不要使用1.x版本。但是试试2.1.4——它是2.x兼容的。你在哪里可以找到2.1.x版本的下载?我在他们的网站上只看到了2.2和1.x的内容。你如何在没有注意到你的两个库不能一起使用的情况下达到2.2?书呆子的愤怒@JasonWhitehorn他们都在Maven central回购协议中,所以要么更改Maven deps,要么修改link也可以解决这个问题。
[2013-04-25 09:32:08 - Training - JacksonParser] Error generating final archive: Found duplicate file for APK: LICENSE
Origin 1: C:\~\workspace\Training - JacksonParser\libs\jackson-core-2.2.0.jar
Origin 2: C:\~\workspace\Training - JacksonParser\libs\jackson-databind-2.2.0.jar
git clone git://github.com/FasterXML/jackson-core.git
git clone git://github.com/FasterXML/jackson-databind.git
cd jackson-core
git checkout jackson-core-2.2.0b # not sure what the "b" is about
mv src/main/resources/NOTICE src/main/resources/META-INF/
mv src/main/resources/LICENSE src/main/resources/META-INF/
mvn install
# jar will be at target/jackson-core-2.2.0.jar

cd ../jackson-databind
git checkout jackson-databind-2.2.0
mv src/main/resources/NOTICE src/main/resources/META-INF/
mv src/main/resources/LICENSE src/main/resources/META-INF/
mvn install
# jar will be at target/jackson-databind-2.2.0.jar