Treasure icon indicating copy to clipboard operation
Treasure copied to clipboard

在库中使用Treasure

Open ben-zhong opened this issue 8 years ago • 4 comments

你好,我最近在尝试使用Treasure。

我在项目的其中一个module里引用了Treasure,使用的时候并没有问题(因为app和其他module本身并没有使用Treasure,所以就没有使用gradle plugin)。

但当我把那个moudle分离出来,单独打包成一个aar时,再导入原项目后,运行的时候就出现了如下错误:

java.lang.NoClassDefFoundError: Failed resolution of: Lcom/baoyz/treasure/Treasure; Caused by: java.lang.ClassNotFoundException: Didn't find class "com.baoyz.treasure.Treasure" on path: DexPathList[...]

请问你知道原因吗,谢谢

ben-zhong avatar Jan 18 '17 03:01 ben-zhong

依赖这个 aar 的 module 需要添加 Treasure 的依赖

baoyongzhang avatar Jan 18 '17 06:01 baoyongzhang

因为编译的 aar 里不会把依赖一起编译进去,所以你还得单独依赖一遍,apt 的依赖不需要加了。

compile 'com.baoyz.treasure:treasure:0.7.4'

这一行就行了。

baoyongzhang avatar Jan 18 '17 06:01 baoyongzhang

谢谢,这的确解决了我的问题。不过在另一个project里面我遇到了Multiple dex files define Lcom/baoyz/treasure/PreferencesFinder的问题。这个project里有使用treasure,然后我以aar形式添加了含treasure的库(就是上面说的那个)。主项目中我已经按说明添加了gradle的plugin,不过依然出现了那个错误,是否因为我是以aar形式的问题呢?谢谢

ben-zhong avatar Jan 18 '17 07:01 ben-zhong

@ben-zhong 可以在主 project 的 build.gradle 中配置:

compile('com.baoyz.treasure:treasure:0.7.4') {
	exclue group: 'com.baoyz.treasure'
}

huaf22 avatar Sep 28 '17 07:09 huaf22