我有一个在gradle中具有ggplot(tt, aes(Var2, Freq, fill=Var1)) + geom_bar(stat='identity') +
xlab('Variable') + guides(fill=guide_legend("Variable"))
依赖关系的android库,其compliedSDK为23
我有以下怀疑
案例1)假设任何使用不同版本com.android.support:appcompat-v7:23.0.1
的应用程序使用我的库。
案例2)假设任何具有不同版本com.android.support:appcompat-v7:23.3.0
或com.android.support:appcompat-v7:25.0.1
的应用程序和不同的编译后的SDK(24或25)使用我的库。
我知道com.android.support:appcompat-v7:24+
。
The support library should not use a different version than the compileSdkVersion
)与应用程序的已编译的SDK(25)不同)任何人请清除我的怀疑
答案 0 :(得分:0)
- android采取哪个版本?低一或高一?我怎么看?
醇>
构建库时,您将依赖项显式放在build.gradle
中。 app的创建者也是这样做的,它使用你的库作为他build.gradle
中声明的依赖。如果创建者显式声明支持库作为依赖项,则采用该版本(无论依赖项声明的版本)。如果他不这样做,则会采用任何依赖项声明的最高版本(此类支持库被视为传递依赖项)。
示例:您的图书馆使用appcompat-v7:23.3.0
。 app的创建者声明appcompat-v7:25.0.1
。简单案例:appcompat-v7:25.0.1
被采用。
示例2 :您的图书馆使用appcompat-v7:23.3.0
。应用的创建者不使用appcompat-v7
。 appcompat-v7:23.3.0
将出现在输出应用中。
示例3 :您的图书馆使用appcompat-v7:23.3.0
。另一个库使用appcompat-v7:24.1.0
。如果创作者未明确声明appcompat-v7:xx.x.x
,则appcompat-v7:24.1.0
版本将出现在输出应用中。
希望你明白。
- 当任何应用使用我的库时,如何确保v7 appcompat没有冲突?
醇>
你无法保证。这就是为什么你应该总是在库中放置最高版本的支持库。我甚至不能保证支持库保持向后兼容性。 Here就是他们没有的例子。
我知道支持库不应该使用与compileSdkVersion不同的版本。
这只是一个建议。但是,你应该遵守它,但你不必这样做。