PullToRefresh下拉刷新在App中应用非常频繁,然而PullToRefresh是在ADT下开发完成的。如果要将其整合到Android Studio目录下的话颇费周折。前面的文章“Android Studio项目引入外部库注意事项(PullToRefresh)”介绍了如何将PullToRefresh的library引入到项目中。如果想直接运用PullToRefresh的例子的话还需要引入extras下的PullToRefreshListFragment和PullToRefreshViewPager两个库。

  然而,PullToRefreshListFragment和PullToRefreshViewPager两个库的引入却大动干戈。其实问题不大,只是对Gradle不熟悉,折腾了好久才知道问题所在。记录如下:

  1、包重复引入

Error:Execution failed for task ':app:dexDebug'.
> com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command 'D:\Program Files\Java\jdk1.8.0_60\bin\java.exe'' finished with non-zero exit value 2

  将android-support-v4.jar包删除以后又报如下异常:

D:\AndroidStudioProjects\AndoridNewsApp\PullToRefreshExtras\PullToRefreshListFragment\src\com\handmark\pulltorefresh\extras\listfragment\PullToRefreshBaseListFragment.java
Error:(19, 30) 错误: 程序包android.support.v4.app不存在
Error:(28, 106) 错误: 找不到符号
符号: 类 ListFragment
Error:(32, 2) 错误: 方法不会覆盖或实现超类型的方法
Error:(34, 17) 错误: 找不到符号
符号: 变量 super
位置: 类 PullToRefreshBaseListFragment<T>
其中, T是类型变量:
T扩展已在类 PullToRefreshBaseListFragment中声明的PullToRefreshBase<? extends AbsListView>

  解决办法:

    a、将extras\PullToRefreshListFragment\libs下的android-support-v4.jar删除

    b、添加包依赖( File --> project structure --> dependencies )

    也可以直接在extras\PullToRefreshListFragment\build.gradle中的dependencies下直接添加compile 'com.android.support:support-v4:23.0.1'

dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
compile project(':PullToRefresh')
compile 'com.android.support:support-v4:23.0.1'
}

  2、最小sdk版本

Error:Execution failed for task ':PullToRefreshExtras:PullToRefreshListFragment:processDebugAndroidTestManifest'.
> java.lang.RuntimeException: Manifest merger failed : uses-sdk:minSdkVersion 1 cannot be smaller than version 4 declared in library [AndoridNewsApp:PullToRefresh:unspecified] D:\AndroidStudioProjects\AndoridNewsApp\PullToRefreshExtras\PullToRefreshListFragment\build\intermediates\exploded-aar\AndoridNewsApp\PullToRefresh\unspecified\AndroidManifest.xml
Suggestion: use tools:overrideLibrary="com.handmark.pulltorefresh.library" to force usage

  在extras\PullToRefreshListFragment\build.gradle中最小sdk版本设置

android {
......//其它配置 defaultConfig {
minSdkVersion 14
targetSdkVersion 23
} ......//其它配置
}

  最终extras\PullToRefreshListFragment\build.gradle如下:

apply plugin: 'com.android.library'
android {
compileSdkVersion 23
buildToolsVersion "23.0.0" defaultConfig {
minSdkVersion 14
targetSdkVersion 23
} sourceSets {
main {
manifest.srcFile 'AndroidManifest.xml'
java.srcDirs = ['src']
resources.srcDirs = ['src']
aidl.srcDirs = ['aidl']
renderscript.srcDirs = ['src']
res.srcDirs = ['res']
assets.srcDirs = ['assets']
}
}
} dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
compile project(':PullToRefresh')
compile 'com.android.support:support-v4:23.0.1'
}

最新文章

  1. 背水一战 Windows 10 (33) - 控件(选择类): ListBox, RadioButton, CheckBox, ToggleSwitch
  2. AR播放器
  3. Effective C++ 之 Item 1: 视C++为一个语言联邦
  4. mybatis 模糊查询 like
  5. libevent (三) 事件注册与循环监听
  6. CMD command
  7. TaskTracker任务初始化及启动task源码级分析
  8. Linux网络编程必看书籍推荐
  9. struts不同session范围添加、访问属性
  10. gridView--GridView关于间距的属性值介绍
  11. [转]float,double和decimal类型
  12. 第二篇、C_递归算法
  13. (转载)最黑的黑客米特尼克:多次耍FBI 终被高手擒
  14. AngularJs的Select演示
  15. 201521123040《Java程序设计》第8周学习总结
  16. ASP.NET Core 一步步搭建个人网站(3)_菜单管理
  17. mysql下如何删除本节点下的所有子节点小记
  18. Ubuntu16.04 中 Vscode 如何断点调试C语言程序
  19. Linux下修改Oracle数据库字符集命令
  20. WPF:Hyperlink如何绑定数据

热门文章

  1. Java Web-session介绍
  2. Yii2请求,报400错误
  3. 【bzoj1562】 NOI2009—变换序列
  4. XCode新建Class时自动加前缀(class prefix 修改前缀)
  5. 多线程练习(java)
  6. Message
  7. C++ map 映照容器
  8. 初学Hibernate之Query扩展
  9. --hdu 2191 悼念512汶川大地震遇难同胞——珍惜现在,感恩生活(多重背包)
  10. webform添加到webapi的支持