Android Studio项目整合PullToRefresh的问题记录
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'
}
Android Studio项目整合PullToRefresh的问题记录的更多相关文章
- Android Studio项目转Eclipse项目
Android Studio项目的目录结构和Eclipse项目不同.如何转换? 以FloatingAction 项目为例:实现向上滑动隐藏悬浮按钮,向上滑动显示悬浮按钮. GitHub 地址:http ...
- Android Studio项目结构
我们创建了一个Android Project,打开就如下图所示: 我们选择Project视图,就会有以下的项目文档结构: 上面笔者标注的数字是接下来要讲解的内容. 我们先来看1: 我们创建Appl ...
- 怎样将android studio项目导入eclipse
如今,越来越多的开源项目都是用android studio来开发的,所以源码都与eclipse有所不同. 以下是将android studio项目导入eclipse的一般步骤: 1. 先解压项目: 2 ...
- Android studio 项目(Project)依赖(非Module)
Android studio 项目(Project)依赖(非Module) 0. 前言 对于Module 级别的依赖大家都知道,今天说下Android Studio下的项目依赖. 场景: A Proj ...
- 【Android Studio安装部署系列】三、Android Studio项目目录结构
版权声明:本文为HaiyuKing原创文章,转载请注明出处! 概述 简单介绍下Android studio新建项目的目录结构. 常用项目结构类型 在Android Studio中,提供了以下几种项目结 ...
- Android Studio项目用Git上传至码云(OSChina)
工具: Git安装(官网下载,默认安装即可). 步骤一: 新建一个Android Studio项目: 步骤二: 申请OSChina账号.登陆并创建新项目 1. 2. 3.点击复制,下面在Android ...
- Android Studio项目Gradle内网配置
由于内网无法连接到外部网络,在使用Gradle编译Android Studio项目时就会面临一些问题: 1.Gradle安装文件无法下载 2.Gradle Android插件无法下载 3.项目依赖文件 ...
- 在内网使用Gradle构建Android Studio项目
在Android Studio项目中,默认的远程仓库为jcenter,如果在项目引用了一些类库,Gradle构建程序的时候会将这些依赖类库从jcenter网站下载到本地,如我们在 build.grad ...
- 如何在Android Studio项目中导入开源库?
前两天,谷歌发布了Android Studio 1.0的正式版,也有更多的人开始迁移到Android Studio进行开发.然而,网上很多的开源库,控件等还是以前的基于Eclipse进行开发,很多人不 ...
随机推荐
- java 关键字 transient
一个对象实现了Serilizable 接口,该对象就可以被序列化. 然而在实际开发工程中,我们会遇到,这个类的有些属性不需要序列化,比如包含用户的敏感信息(如密码),为了安全起见,不希望在网络操作(主 ...
- Hibernate-清理一级缓存
Session执行一些sql语句把内存中的对象的状态同步到数据库,这个过程被称为session清理. 在默认情况下,Session会在下面的时间点清理缓存. 1 当应用程序调用net.sf.hiber ...
- 你也可以当面霸-Servlet与JSP的原理及特点
既然是面试系列,就是面试官和应聘者之间的对话.本文是采用一问一答的形式呈现给读者的,这样能有一个明确的考察点,不像理论知识那么枯燥. 01.什么是Servlet技术 Servlet是和平台无关的服务器 ...
- RBAC(基于角色的访问控制权限)表结构
Rbac 支持两种类,PhpManager(基于文件的) 和 DbManager(基于数据库的) 权限:就是指用户是否可以执行哪些操作 角色:就是上面说的一组操作的集合,角色还可以继承 在Yii2.0 ...
- [NOIP2011] 提高组 洛谷P1314 聪明的质监员
题目描述 小T 是一名质量监督员,最近负责检验一批矿产的质量.这批矿产共有 n 个矿石,从 1到n 逐一编号,每个矿石都有自己的重量 wi 以及价值vi .检验矿产的流程是: 1 .给定m 个区间[L ...
- [IOS Delegate和协议]
转载请注明出处 http://blog.csdn.net/pony_maggie/article/details/25655443 作者:小马 代理和协议的语法这里不赘述,自己查资料. 这个demo的 ...
- jsp中 response和request区别
1.response 属于重定向请求: 其地址栏的URL会改变: 会向服务器发送两次请求: 2. request 属于请求转发: 其地址栏的URL不会改变: 向服务器发送一次请求: 举一个区分它们的简 ...
- linux学习之用户管理
用户管理是在root用户下进行相关操作的 1.配置文件路径: 保存用户信息的文件:/etc/passwd 保存密码的文件:/etc/shadow 保存用 ...
- ewebeditor编辑器ASP/ASPX/PHP/JSP版本漏洞利用总结及解决方法
这个编辑器按脚本分主要有4个版本,ASP/ASPX/PHP/JSP 每个版本都有可以利用的漏洞.判断网站是否使用了eWebEditor查看程序源代码,看看源码中是否存在类似”ewebeditor.as ...
- c# 解析JSON的几种办法(转载)
对比 .NET下几种常见的解析JSON方法 主要类 命名空间 限制 内建LINQ支持 DataContractJsonSerializer System.Runtime.Serialization.J ...