android开发中遇到的一些问题及解决方案
来源:互联网 发布:淘宝买衣服哪家店好 编辑:程序博客网 时间:2024/05/14 08:12
相信大家在打包也遇到过这样的问题把,打包失败。以下是昨天我昨天开发时遇到的一些问题,经过查找资料,顺利解决。不过多赘述,问题如下:
问题一:Messages报错如下:
Errors while building APK. You can find the errors in the ‘Messages’ view.
解决方法:
在app的build.gradle里的android{}中添加如下代码,然后再次运行Generate Signed Apk。
android{ lintOptions { checkReleaseBuilds false abortOnError false }}
签名的注意事项
所有的Android应用都必须有数字签名,没有不存在数字签名的应用,包括模拟器上运行的。Android系统不会安装没有数字证书的应用。签名的数字证书不需要权威机构来认证,是开发者自己产生的数字证书,即所谓的自签名。正式发布一个Android应用时,必须使用一个合适的私钥生成的数字证书来给程序签名,不能使用ADT插件或者ANT工具生成的调试证书来发布。数字证书都是有有效期的,Android只是在应用程序安装的时候才会检查证书的有效期。如果程序已经安装在系统中,即使证书过期也不会影响程序的正常功能。
问题二:Messages报错如下:
Error:Execution failed for task ':app:transformClassesWithJarMergingForDebug'.com.android.build.transform.api.TransformException: java.util.zip.ZipException: duplicate entry: android/support/v7/cardview/BuildConfig.class
解决方法:
那就是说明你在工程中libs文件夹或是build.gradle中引用了重复的依赖包或是依赖工程,自己Ctrl+N,输入BackStackState查找一下是哪个包重复,那么就删除相应的libs中的jar包依赖,然后通过compile方式进行引用即可。
问题三:Messages报错如下:
dexDebug ExecException finished with non-zero exit value 2
解决方法:
需要在gradle中配置下面的代码,原因是引用了多个libraries文件
defaultConfig { multiDexEnabled true}
由于是突然想起把以前遇到问题总结下,好多问题代码没了,就简单描述下问题吧!
问题四:轮播图加载的问题:当网络请求的图片只有两张,三张时,你用viewpager加载的图片就会出现问题,空白页啊,或者直接报错,错误好像是什么父控件被移除子控件啥的,反正就是既有孩子也有父亲的child,parent,记不清楚了:
解决方案:在pagerAdapter里面
/** * Created by sks on 2016/4/18. */public class FoodBannerPagerAdapter extends PagerAdapter { private List<ImageView> imageViews; // 存放美食图片的列表 private ViewPager myViewPager; public void setImageViews(List<ImageView> imageViews) { this.imageViews = imageViews; }// public FoodBannerPagerAdapter(ViewPager viewPager, List<ImageView> imageViews) {// this.myViewPager = viewPager;// this.imageViews = imageViews;// } @Override public int getCount() { if (imageViews.size() == 1) {// 一张图片时不用流动 return imageViews.size(); } return Integer.MAX_VALUE; } @Override public boolean isViewFromObject(View view, Object object) { return view == object; } @Override public Object instantiateItem(ViewGroup container, int position) { //对ViewPager页号求模取出View列表中要显示的项 position %= imageViews.size(); if (position < 0){ position = imageViews.size()+position; } ImageView view = imageViews.get(position); //如果View已经在之前添加到了一个父组件,则必须先remove,否则会抛出IllegalStateException。 ViewParent vp =view.getParent(); if (vp!=null){ ViewGroup parent = (ViewGroup)vp; parent.removeView(view); } container.addView(view); //add listeners here if necessary return view;} @Override public void destroyItem(ViewGroup container, int position, Object object) {// ((ViewPager)container).removeView(imageViews.get(position % imageViews.size())); }}
问题5:这是一个自定义的viewpager,就是引导页的时候有一个很宽的背景图在最底层,当然每个引导视图还是有的当你滑动视图的时候背景也要跟着滑动,你划到最后一个引导页时候,那个最底层的背景也就划完了,就这样一个效果,对了效果图怎么上传啊?
/** * Created by on 2016/5/30. */public class GuideViewPager extends ViewPager { private Bitmap bg; private Paint b = new Paint(1); public GuideViewPager(Context context) { super(context); } public GuideViewPager(Context context, AttributeSet attrs) { super(context, attrs); } @Override protected void dispatchDraw(Canvas canvas) { if (this.bg != null) { int width = this.bg.getWidth(); int height = this.bg.getHeight(); int count = getAdapter().getCount(); int x = getScrollX(); // 子View中背景图片需要显示的宽度,放大背景图或缩小背景图。 int n = height * getWidth() / getHeight(); /** * (width - n) / (count - 1)表示除去显示第一个ViewPager页面用去的背景宽度,剩余的ViewPager需要显示的背景图片的宽度。 * getWidth()等于ViewPager一个页面的宽度,即手机屏幕宽度。在该计算中可以理解为滑动一个ViewPager页面需要滑动的像素值。 * ((width - n) / (count - 1)) /getWidth()也就表示ViewPager滑动一个像素时,背景图片滑动的宽度。 * x * ((width - n) / (count - 1)) / getWidth()也就表示ViewPager滑动x个像素时,背景图片滑动的宽度。 * 背景图片滑动的宽度的宽度可以理解为背景图片滑动到达的位置。 */ int w = x * ((width - n) / (count - 1)) / getWidth(); canvas.drawBitmap(this.bg, new Rect(w, 0, n + w, height), new Rect( x, 0, x + getWidth(), getHeight()), this.b); } super.dispatchDraw(canvas); } public void setBackGroud(Bitmap paramBitmap) { this.bg = paramBitmap; this.b.setFilterBitmap(true); }}
xml文件
<?xml version="1.0" encoding="utf-8"?><FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@drawable/yindaobj" tools:context="com.mushi.activitys.GuideActivity"> <!--android:background="@drawable/yindaobj"--> <com.mushi.view.GuideViewPager android:id="@+id/viewpager" android:layout_width="match_parent" android:layout_height="match_parent"> </com.mushi.view.GuideViewPager></FrameLayout>
问题六:
大家经常遇到的listview嵌套gridview,
解决方案:
listview:
import android.content.Context;import android.util.AttributeSet;import android.widget.ListView;public class MyListView extends ListView { public MyListView(Context context) { super(context); } public MyListView(Context context, AttributeSet attrs) { super(context, attrs); } public MyListView(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); } @Override protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { int expandSpec = MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE >> 2, MeasureSpec.AT_MOST); super.onMeasure(widthMeasureSpec, expandSpec); }}
gridview
/** * Created by */public class GridViewScrollView extends GridView { public GridViewScrollView(Context context, AttributeSet attrs) { super(context, attrs); } public GridViewScrollView(Context context) { super(context); } public GridViewScrollView(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); } @Override public void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { int expandSpec = MeasureSpec.makeMeasureSpec( Integer.MAX_VALUE >> 2, MeasureSpec.AT_MOST); super.onMeasure(widthMeasureSpec, expandSpec); }}
现这些把,周六日在总结点儿!
- android开发中遇到的一些问题及解决方案
- android 开发过程中遇到的问题及解决方案
- .Net开发工作中常遇到的一些问题及解决方案
- 移动前端开发遇到的一些问题及解决方案
- 1.cocos2d-x开发环境中遇到的一些问题及解决方案。
- android开发中遇到的一些问题
- Android 开发中遇到的一些问题
- Oracle安装过程中遇到的一些问题及解决方案
- hbase测试过程中遇到的一些问题及解决方案
- 网页制作中遇到的一些问题及解决方案
- 编程中遇到的一些问题及解决方案
- Java学习中,所遇到的一些问题及解决方案
- 开发中遇到的一些问题的解决方案
- Android Studio使用过程中遇到的一些问题及解决方案
- Android Studio使用过程中遇到的一些问题及解决方案
- Android Studio使用过程中遇到的一些问题及解决方案
- 在sharepoint开发中遇到的一些问题和解决方案
- 我遇到的android开发的问题及解决方案汇总
- 测试工作经验分享
- 使用maven插件对java工程进行打包
- 50.车牌号
- Dark channel
- Nginx配置upstream实现负载均衡
- android开发中遇到的一些问题及解决方案
- 扫描控制台输入
- FastJson--阿里巴巴公司开源的速度最快的Json和对象转换工具
- kermit
- android 使用libmad 生成MP3左右声道的PCM文件
- 哈希表例子2
- Communications link failure due to underlying exception: ** BEGIN NESTED EXCEPTION **
- HDU-1251 统计难题(map)
- poj 2112 Optimal Milking(二分+Floyd+最大流)