我可以在当前的Android版本中使用Android L Preview支持库中的Widgets吗?

时间:2014-07-03 08:27:07

标签: android gradle android-studio android-5.0-lollipop

我正在尝试使用RecyclerView&现有Android版本的CardView。他们说它在支持库中。所以,我应该可以使用put“compileSdkVersion”到“Android-L”。对吗?

我正在尝试使用没有Android L预览设备或模拟器的那些小部件。我已经检查了有关此问题的其他问题。但是,似乎他们都在试用Android-L和Android-L版本。

这是我的依赖项。

  

编译'com.android.support:support-v4:13.0.+'
  编译'com.android.support:recyclerview-v7:+'

这是我的目标配置

  

minSdkVersion 15
  targetSdkVersion 20

提前感谢任何想法。

3 个答案:

答案 0 :(得分:15)

我刚刚找到解决方案 我之所以无法使用RecyclerView&amp ;; CardView虽然 targetSdkVersion minSdkVersion 不是“Android-L”,但是因为内部Google设计的处理操作系统的预览版本与原始版本不同版本。

当我编译包含Android-L组件的App时,构建工具将 minSdkVersion targetSdkVersion 锁定到同一级别。新的支持库(RecyclerView,CardView,Palette等)也被锁定在L API级别。

此行为仅发生在此Android-L预览版上。

它的修复是将以下内容放在AndroidManifest.xml中。
我不需要在gradle脚本上更改任何内容。

<uses-sdk
  tools:node="replace" />

自Android Gradle Plugin版本0.11开始,默认情况下它启用了一个新的Manifest Merger。它允许我们做一些niffy东西。此特定配置告诉清单处理器使用此属性替换较低优先级清单(例如本例中的库清单)中的uses-sdk节点的任何属性。

由于Gradle还将build.gradle中的minSdkVersion和targetSdkVersion插入到这个uses-sdk节点中,这就是我们真正需要添加的内容。

检查here以获取与此问题相关的更多信息 检查here以获取与Manifest Merger相关的信息。

答案 1 :(得分:1)

最佳解决方案是RecyclerViewLib。支持库已被拉入回购并在maven central上发布。即使在释放L之后它也是安全的,因为所有L依赖代码都已被删除。作者在他的blog post中解释了这一点。

要在项目中使用它,只需在build.gradle依赖项中添加以下行:

compile 'com.twotoasters.RecyclerViewLib:library:1.0.+@aar'
祝你好运!

答案 2 :(得分:0)

不,你必须在7以上设置targetSdkVersion。你可以使用android支持库v7与支持7以上api级别的android的项目。 还有一个。 Android L有api级别'android-L',而不是20.在引擎盖下它有api等级21(20是4.4W,KitKat用于可穿戴设备)。