使用开源的WebImageView组件

以前项目中也用到过,不过以前的那个WebImageView写得过于复杂,不利于以后重用。

今天要做新项目,于是在网上找了一个开源组件来使用。地址如下:

https://github.com/ZaBlanc/WebImageView

测试了一下还蛮好用的。


本来想修改修改作为公司自己的内部组件的,然后打成jar包以后重用的。可是发现打成jar包后(export ---> java (选择jar文件)),再引入之后自己的项目中之后,会出现如下的问题:


java.lang.IllegalArgumentException: already added: Lcom/xxxwidget/webimageview/cache/WebImageCache;

[2012-06-07 09:30:59 - TestWebImageView] Dx at com.android.dx.dex.file.ClassDefsSection.add(ClassDefsSection.java:123)

[2012-06-07 09:30:59 - TestWebImageView] Dx at com.android.dx.dex.file.DexFile.add(DexFile.java:163)

[2012-06-07 09:30:59 - TestWebImageView] Dx at com.android.dx.command.dexer.Main.processClass(Main.java:486)

[2012-06-07 09:30:59 - TestWebImageView] Dx at com.android.dx.command.dexer.Main.processFileBytes(Main.java:455)

[2012-06-07 09:30:59 - TestWebImageView] Dx at com.android.dx.command.dexer.Main.access$400(Main.java:67)

[2012-06-07 09:30:59 - TestWebImageView] Dx at com.android.dx.command.dexer.Main$1.processFileBytes(Main.java:394)

[2012-06-07 09:30:59 - TestWebImageView] Dx at com.android.dx.cf.direct.ClassPathOpener.processArchive(ClassPathOpener.java:245)

[2012-06-07 09:30:59 - TestWebImageView] Dx at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:131)

[2012-06-07 09:30:59 - TestWebImageView] Dx at com.android.dx.cf.direct.ClassPathOpener.processDirectory(ClassPathOpener.java:191)

[2012-06-07 09:30:59 - TestWebImageView] Dx at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:123)

[2012-06-07 09:30:59 - TestWebImageView] Dx at com.android.dx.cf.direct.ClassPathOpener.process(ClassPathOpener.java:109)

[2012-06-07 09:30:59 - TestWebImageView] Dx at com.android.dx.command.dexer.Main.processOne(Main.java:418)

[2012-06-07 09:30:59 - TestWebImageView] Dx at com.android.dx.command.dexer.Main.processAllFiles(Main.java:329)

[2012-06-07 09:30:59 - TestWebImageView] Dx at com.android.dx.command.dexer.Main.run(Main.java:206)

[2012-06-07 09:30:59 - TestWebImageView] Dx at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

[2012-06-07 09:30:59 - TestWebImageView] Dx at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)

[2012-06-07 09:30:59 - TestWebImageView] Dx at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)

[2012-06-07 09:30:59 - TestWebImageView] Dx at java.lang.reflect.Method.invoke(Method.java:597)

[2012-06-07 09:30:59 - TestWebImageView] Dx at com.android.ide.eclipse.adt.internal.build.DexWrapper.run(DexWrapper.java:180)

[2012-06-07 09:30:59 - TestWebImageView] Dx at com.android.ide.eclipse.adt.internal.build.BuildHelper.executeDx(BuildHelper.java:702)

[2012-06-07 09:30:59 - TestWebImageView] Dx at com.android.ide.eclipse.adt.internal.build.builders.PostCompilerBuilder.build(PostCompilerBuilder.java:646)

[2012-06-07 09:30:59 - TestWebImageView] Dx at org.eclipse.core.internal.events.BuildManager$2.run(BuildManager.java:728)

[2012-06-07 09:30:59 - TestWebImageView] Dx at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)

[2012-06-07 09:30:59 - TestWebImageView] Dx at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:199)

[2012-06-07 09:30:59 - TestWebImageView] Dx at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:321)

[2012-06-07 09:30:59 - TestWebImageView] Dx at org.eclipse.core.internal.events.BuildManager.build(BuildManager.java:396)

[2012-06-07 09:30:59 - TestWebImageView] Dx at org.eclipse.core.internal.resources.Project$1.run(Project.java:618)

[2012-06-07 09:30:59 - TestWebImageView] Dx at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:2344)

[2012-06-07 09:30:59 - TestWebImageView] Dx at org.eclipse.core.internal.resources.Project.internalBuild(Project.java:597)

[2012-06-07 09:30:59 - TestWebImageView] Dx at org.eclipse.core.internal.resources.Project.build(Project.java:124)

[2012-06-07 09:30:59 - TestWebImageView] Dx at com.android.ide.eclipse.adt.internal.project.ProjectHelper.doFullIncrementalDebugBuild(ProjectHelper.java:978)

[2012-06-07 09:30:59 - TestWebImageView] Dx at com.android.ide.eclipse.adt.internal.launch.LaunchConfigDelegate.launch(LaunchConfigDelegate.java:147)

[2012-06-07 09:30:59 - TestWebImageView] Dx at org.eclipse.debug.internal.core.LaunchConfiguration.launch(LaunchConfiguration.java:854)

[2012-06-07 09:30:59 - TestWebImageView] Dx at org.eclipse.debug.internal.core.LaunchConfiguration.launch(LaunchConfiguration.java:703)

[2012-06-07 09:30:59 - TestWebImageView] Dx at org.eclipse.debug.internal.ui.DebugUIPlugin.buildAndLaunch(DebugUIPlugin.java:937)

[2012-06-07 09:30:59 - TestWebImageView] Dx at org.eclipse.debug.internal.ui.DebugUIPlugin$8.run(DebugUIPlugin.java:1141)

[2012-06-07 09:30:59 - TestWebImageView] Dx at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)

[2012-06-07 09:30:59 - TestWebImageView] Dx 1 error; aborting

[2012-06-07 09:30:59 - TestWebImageView] Conversion to Dalvik format failed with error 1


这个问题,已经有很多人遇到过了,原因无非就是jar包中有多份同名文件。解决了半天也解决不了。

后来找到一个帖子:

http://www.bangchui.org/simple/?t15286.html


这个问题解决了,是我导入jar的方式不对,不能直接把jar包放在android工程里面,要通过外部包引用的方式导入进来,就不会存在冲突了。

可是,这跟我以前在ADT更新到15所引发的问题相冲突了。

试了一下,发现是这个样子的,可是在xml布局里面写自己的组件时,会报如下错误:


06-07 09:59:51.941: E/AndroidRuntime(4076): Caused by: java.lang.ClassNotFoundException: com.xxxwidget.webimageview.image.WebImageView in loader dalvik.system.PathClassLoader[/data/app/com.xxxx.testwebimageview-1.apk]


具体原因不详!


暂时解决方法:

    source code 放在自己的代码里,不用jar包的方式来导入。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值