带外部图书馆的Google TV应用(jar)

时间:2012-01-19 13:33:34

标签: android google-tv

我正在尝试在Google TV模拟器上运行一个简单的应用程序。

该应用程序有一个jar,它在构建路径和lib文件夹中,它适用于ICS和Honeycomb 3.1(平板电脑),但在Google TV模拟器上,它崩溃了:

D/dalvikvm( 1707): DexOpt: 'Ljavax/jmdns/ServiceListener;' has an earlier definition; blocking out

好像已经加载了lib。

之前有人见过这个吗?

由于

2 个答案:

答案 0 :(得分:0)

是的,我以前见过这个。 Google TV正在使用JMDNS来支持软件远程控制。当我在自己的应用程序中包含JMDNS时,总是从已经安装在设备上的版本加载类而不是我的类副本。我在Google TV设备上完成了所有测试,但没有使用模拟器。 Google TV上的JMDNS版本似乎比最新版本的JMDNS更旧。在我的代码中,我调用了在设备上失败的新函数,即使我的JMDNS jar副本具有那些较新的函数签名。看起来Android / Google TV上的类加载器总是在它到达每个应用程序的jar文件之前获取系统jar文件。

答案 1 :(得分:0)

谢谢,这篇文章帮助我在我正在使用jmDNS的GTV项目上取得进展。我需要jmDNS来发现网络上的打印机,并发现内置于GTV(版本2.1)的jmDNS版本没有发现打印机。我采用了最新的jmDNS版本(当时为v3.4.1),更改了命名空间名称,重新编译成我的代码并在GTV上运行我的应用程序。打印机发现现在很有效。当然,由于Apache许可条款,我无法使用更改版本的jmDNS发布我的应用程序。但是,在更新GTV代码以包含更新版本的jmDNS之前,更改jmDNS源代码中的命名空间名称将允许您开发打印机发现应用程序。