开发过程中自己遇到的异常(三)

继续上一篇,这篇还是异常,有需要的尽管看看吧。


13.ScrollView 嵌套RecyclerView什么也不显示,在ScrollView中添加一个属性android:fillViewport="true"   但还是有些问题,就是滑动时不流畅

14.fragment设置了view ,但是还是不显示布局中的内容,经过查看,找到原因,return那里没有返回自己定义的view。

15.这是使用RecyclerView时出错,我先在xml中写好了,然后运行就报下面的错误
java.lang.NullPointerException: Attempt to invoke virtual method 'void android.support.v7.widget.RecyclerView$LayoutManager.onMeasure(android.support.v7.widget.RecyclerView$Recycler, android.support.v7.widget.RecyclerView$State, int, int)' on a nullobject reference
  解决办法:初始化后,设置mRecyclerView.setLayoutManager(mLayoutManager);
16.使用shape画的虚线,在Graphical Layout 中显示正常,但是设置为背景后,只是显示一条直线。
方法1:在AndroidManifest.xml中给application设置一个属性android:hardwareAccelerated="false",这是禁止软件加速。不过对于应用本身会有一些影响。
方法2:在activity中设置view.setLayerType(View.LAYER_TYPE_SOFTWARE, null);

17.使用viewpager和fragment配合使用,viewpager会预加载,所以在加载第一页时后面的会加载出来,因为第二页还没设置完,所以才会出现空指针,寻找了好长时间,然后发现了问题。把第二页,处理好,再去加载时,一切都好了。
解决预加载:在fragment中重写setUserVisibleHint(boolean isVisibleToUser){  }是否可见,见到时加载,不可见到时不加载。

18.一直知道stopself是停掉Service的方法,但是却不知道什么时候停止。以为调用了stopself就会马上停止,实际上我错了。

在onStartCommond方法里面调用stopself方法时,不会马上停止,而是onStartCommond方法执行结束才会停止。

还有一点,调用stopself方法之后,service会执行onDestory方法。

另外,如果onStartCommond中启动一个线程,调用stopself,线程也不会被杀死。

当调用finish方法时,onCreate方法会继续执行,之后调用onDestory方法。 


19.async-http请求网络框架 java.net.SocketTimeoutException

异常是因为下载apk文件时产生的。所以调整了一下请求时间

AsyncHttpClient client = new AsyncHttpClient();

client.setTimeout(20*1000)

[原来是10*1000,改为了20*1000]把时间调长一下


20.ListView  ScrollView 都带有滚动效果,就有了右侧的滑块。自带效果可能不如意,所以需要自己设置一下。

方法:设置几个属性(1)android:scrollbarTrackVertical="@drawable/scrollbar_vertical_track"        //滚动条背景

 (2)android:scrollbarThumbVertical="@drawable/scrollbar_vertical_thumb"    //滑块

 (3)scrollBarSize="5dp" //设置滑块的宽度


21.android  Unable to execute dex: Multiple dex files define Landroid/support/v7/appcompat/R$anim

我的问题描述:

做了一个请求网络的 library,然后用到了一个demo中,运行时,它就开始报错了。

    下面是从网上找的解释(没看太明白,但是知道v7包被使用了两次):

    The build includes the Android Support library v7 twice, once under "Android Dependencies" and once under "Android Private Libraries". That is not going to work.

所以就把library中的v7给remove了,然后运行,OK了。


22.极光推送,使用小米2s手机时,第一次进入程序时,JPushInterface.getRegistrationID(mActivity);获取不到ID,小米这个坑货啊。百度了 一下,有两个地方可以获取RegistrationID【JPushInterface.getRegistrationID(mActivity)是第一个地方】,第二个地方在MyReceiver中,这是个自定义的Receiver。判断action等于JPushInterface.ACTION_REGISTRATION_ID,然后在这里就可以获取到了。


23. Unable to execute dex: Multiple dex files define   Lcom/tencent/mm/a/a(友盟分享的微信的错误)
  解决:由于我们对微信的包名做了修改(libammsdk.jar -> SocialSDK_WeiXin.jar),如出现"Unable to execute dex: Multiple dex files define "问题,请删除libammsdk.jar或者SocialSDK_WeiXin.jar中的一个即可解决问题。(这是友盟论坛的说法   http://bbs.umeng.com/thread-7518-1-1.html
  有时微信调不起客户端,可以查看一下logcat,里面有没有设置weixin     jar包,也有一种是没有设置weixin_circle  jar包。

24.searchview不设置clearfocus(),一直都会弹出软键盘

25.(1)TabPageIndicator设置了mTabPageIndicator.setViewPager(mViewPager);但是还是报错:IllegalStateException:ViewPager has not been bound.
解决办法:在xml中先把TabPageIndicator设置为GONE,然后在代码中设置完了mTabPageIndicator.setViewPager(mViewPager);之后再VISIBLE
    (2)设置mViewPager.setAdapter(mAdapter);在mTabPageIndicator.setViewPager(mViewPager);之后的话也会报错:IllegalStateException:ViewPager does not have adapter instance.
解决办法:把这两者调换一下先后顺序。

  


你可能感兴趣的:(android)