Android正在使用错误的类

时间:2014-02-04 19:03:43

标签: android tag-soup

我在我的一个项目中使用TagSoup,并对HTMLSchema.java进行了一些修改以处理嵌套列表标记。当我测试这些变化时,它们根本没有效果。我在Java独立应用程序中测试了相同的更改,并且它们按预期工作。

当我尝试调试应用程序时,我注意到它没有在调试器中显示正确的行号,所以我做了你通常在这种情况下做的事情:重新构建项目,重新启动IDE,重新启动Android设备和PC,创建一个新的Android项目,都无济于事。

我删除了某些类中的所有代码,应用程序仍然像以前一样运行,所以很明显Android使用的不同于我使用应用程序部署的类。 我创建了一个Android测试项目,除了通常的MainActivity,layout和drawable之外的所有内容,添加了TagSoup类和用TagSoup解析的代码,它仍然没有使用“my”TagSoup类。我用两个4.4.2 Nexus设备和一个运行4.1.2的Note 2测试了这个。

只有当我将包名称从org.ccil.cowan.tagsoup重命名为其他内容(例如org.ccil.cowan.tagsoup2)时才会使用我的应用程序部署的类。

我的问题很简单:到底发生了什么事?

1 个答案:

答案 0 :(得分:2)

TagSoup是Android本身的一部分。随框架提供的类的副本会自动加载到您的虚拟机中......即使它们不是Android SDK的一部分。你看到像BouncyCastle这样的库有同样的东西。

使用 jarjar 或其他方式重构第三方库 - 允许Android的版本和您的库版本共存。