1.
1. Error:warning: Ignoring InnerClasses attribute for an anonymous inner class
在工程的混淆配置文件 proguard-rules.pro 中加入下面这句代码即可:
-keepattributes EnclosingMethod
如果尝试之后还是不行,在主项目build.gradle这里添加这句
defaultConfig {
multiDexEnabled true
}
2. com.Android.build.api.transform.TransformException:Java.util.zip.ZipException:duplicate entry:android/support/v4/app/TaskStackBuilder$SupportParentable.class`.
在所添加的 jar 包或 aar 包中也引用了support-v4,与工程中引用的相冲突
由于,一个module中只引用了一份相同的第三方包。故将 slideDateTimerPicker.jar 所依赖的 v4包 替换成项目中也包含 v4包的 .aar包(唯一性原则) ,同时将build.grandle 中依赖的 compile ‘com.android.support:support-v4 :19.1.0’ 干掉。
类似的问题,都可以是类似的做法,记住引用唯一的原则即可
3.OOM
Try catch
更详细的处理,另写
4.ScrollView里包含横滑,横滑与竖滑冲突
写一个自定义ScrollView,拦截子View滑动事件
public class MyScrollView extends ScrollView {
public MyScrollView(Context context) {
super(context);
}
public MyScrollView(Context context, AttributeSet attrs) {
super(context, attrs);
}
public MyScrollView(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
}
private int x, y;
@Override
public boolean onInterceptTouchEvent(MotionEvent ev) {
switch (ev.getAction()) {
case MotionEvent.ACTION_DOWN://按下y
x = (int) ev.getX();
y = (int) ev.getY();
break;
case MotionEvent.ACTION_MOVE://移动
int new_x = (int) ev.getX();
int new_y = (int) ev.getY();
//判断有水平滑动的意向
int move_x = Math.abs(new_x - x);//x轴滑动的距离
int move_y = Math.abs(new_y - y);//y轴滑动的距离
if (move_x > (move_y + 10))//10的偏移量
{
return false;//传递给字View
}
// //判断有上下滑动的意向(用于字VIew是上下,parent是水平的)
// int move_x = Math.abs(new_x - x);//x轴滑动的距离
// int move_y = Math.abs(new_y - y);//y轴滑动的距离
// if (move_y > (move_x + 10))//10的偏移量
// {
// return false;
// }
break;
}
return super.onInterceptTouchEvent(ev);
}
}
5.空指针
最低级常见的错误
未实例化对象,传值失败,生命周期导致的执行顺序问题
6.图片滑动很卡
压缩图片
压缩图片的方法较多,另写
7.ListView加载图片错乱
在适配器里加载网络图片之前,加载一张默认图片
viewHolder.img_detail_photo.setImageResource(R.mipmap.defult_head);
imageLoader.displayImg(consoleBrokerSeeVoses.get(i).photo,viewHolder.img_detail_photo);