a null Objecton a null referencee异常怎么解决

做服务器登录时出现这个异常,求大神看看什么原因【android开发吧】_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:116,682贴子:
做服务器登录时出现这个异常,求大神看看什么原因收藏
FATAL EXCEPTION: main
Process: com.lrf.chat, PID: 19175
java.lang.NullPointerException: Attempt to invoke virtual method 'android.content.SharedPreferences com.lrf.chat.IM.getSharedPreferences(java.lang.String, int)' on a null object reference
at com.lrf.chat.IM.putString(IM.java:20)
at com.lrf.chat.ui.fragment.LoginFragment$1.onPostExecute(LoginFragment.java:63)
at com.lrf.chat.ui.fragment.LoginFragment$1.onPostExecute(LoginFragment.java:59)
at android.os.AsyncTask.finish(AsyncTask.java:651)
at android.os.AsyncTask.-wrap1(AsyncTask.java)
at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:668)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:5417)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
登录百度帐号推荐应用关于on a null object reference错误
首先看到空指针异常,一般可以分为两类情况: 1. 实例对象没有实例化 2. 调用的方法返回了NULL给实例,然后实例又去做操作你的情况首先确定你是NullPointerException,再根据后面的描述可知,你可能在没有初始化TextView实例的情况下(findViewById),就调用了setText()方法导致的在Android Studio中,是可以直接看到错误根源的,如果我没看错的话,你应该是在MainActivity的onCreate()方法中(具体代码49行)中,在没初始化的情况下调用了TextView的setText()方法导致的你没贴源码,能看出来的就这些了。其实这些在编译器中,只需要点击报错日志中的那个蓝色的行号,就可以跳转看到了有帮助请采纳
你还没有登录,请先登录或注册慕课网帐号
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.nsisoft.charmcampus.charmcampus/com.nsisoft.charmcampus.charmcampus.MainActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.TextView.setText(int)' on a null object reference
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2646)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2707)
at android.app.ActivityThread.-wrap12(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1460)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6077)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:865)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:755)
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.TextView.setText(int)' on a null object reference
at com.nsisoft.charmcampus.charmcampus.MainActivity.onCreate(MainActivity.java:49)
at android.app.Activity.performCreate(Activity.java:6664)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1118)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2599)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2707)
at android.app.ActivityThread.-wrap12(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1460)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6077)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:865)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:755)
你还没有登录,请先登录或注册慕课网帐号
38046人关注
Copyright (C)
All Rights Reserved | 京ICP备 号-23966人阅读
今天测试时,遇到一个问题:
进入同一个界面获取同一份数据并显示时,三星上面没问题,但是小米会崩,并报错void android.view.View.setDrawingCacheBackgroundColor(int)' on a null object reference。网上找到一些原因:
1) (mViewFlags & WILL_NOT_CACHE_DRAWING) == WILL_NOT_CACHE_DRAWING &这个值为true
2) (mViewFlags & DRAWING_CACHE_ENABLED) == DRAWING_CACHE_ENABLED 为false,buildDrawingCache没执行
3) buildDrawingCache执行失败
这些在源码中都可以看到,在获得缓存数据的时候,跟背景色(drawingCacheBackgroundColor),透明度isOpaque,use32BitCache这些有关系,看是细看这些东西都是表面的,是系统在buildDrawingCache的时候,根据View或都系统设置而来的;有些属性是不能更改的;这样一来当一个固定大小的View在不同的设备上生成的图片就可能有所不同,我同事这边存在的问题就是,设置View的固定大小为,而我的设备分辨率为,而源码里可以看到这样代码:
当我们在buildDrawingCache的时候,系统给了我们默认最大的DrawingCacheSize为屏幕宽*高*4;而我的View的CacheSize大小超过了某些设备默认值,就会导致获得为空;开始想着用反射的方法去改变这些属性,或者设置背景颜色来改变图片质量,这样一来CacheSize大小 就可能会变小,但是这样始终不能达到效果;&
最终解决方案:
查看系统buildDrawingCache方法可以看到:
生成DrawingCache的过程貌似就是利用获得View的Canvas然后画到bitmap上,直接返回对应 的bitmap,这样一来,就是我们用getDrawingCache获得的bitmap;跟我们直接将View画到bitmap貌似区别 不是很大,受启发;如下:
自己生成Bitmap;
这样也就将View生成了我们需要的bitmap了,但是有些情况下:比如ViewPager在用getDrawingCache和我自己生成的Bitmap时候,会有区别,ViewPager第一屏是正常的,滑动到第二屏幕的时候,我手动生成的Bitmap不见了,而系统getDrawingCache方法生成 的Bitmap是可见的,郁闷,,,详细看了一下系统buildDrawingCache访求,发现在Canvas绘制Bitmap之后,多了一个步骤:
很明显,系统Canvas,对默认位置进行了移动,即启发:我们在用哥滑动View获得它的Bitmap时候,获得的是整个View的区域(包括隐藏的),如果想得到当前区域,需要重新定位到当前可显示的区域;自己的代码修改:
完美解决用自己生成 的Bitmap替换系统的getDrawingCache()方法;
当然系统getDrawingCache()考虑的因素很多,这一些我们也可以自己直接定义,比如透明磁,大小 ,图片质量等;最重要就是
这行一代码需要理解 ;
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:6328次
排名:千里之外
(2)(1)(10)本帖子已过去太久远了,不再提供回复功能。新人求助,nullReferenceException:object reference not set...【unity3d吧】_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:74,198贴子:
新人求助,nullReferenceException:object reference not set...收藏
nullReferenceException:object reference not set to an instance of a object.求助,这个错误怎么解决?附代码:using UnityEusing System.Cpublic class Controller : MonoBehaviour {private const int HERO_IDLE = 0;private const int HERO_WALK = 1;private const int HERO_RUN = 2;private int gameState = 0;private Vector3void Start(){SetGameState(HERO_IDLE);}void Update(){if(Input.GetMouseButtonDown(0)){Ray ray
= Camera.main.ScreenPointToRay(Input.mousePosition);RaycastHif(Physics.Raycast(ray,out hit)){point
= hit.transform.LookAt(new Vector3(point.x,transform.position.y,point.z));if(Time.realtimeSinceStartup - time &= 0.2f){SetGameState(HERO_RUN);}else{SetGameState(HERO_WALK);}time = Time.realtimeSinceS}}}void FixedUpdate(){switch(gameState){case HERO_IDLE:case HERO_WALK:Move(0.05f);case HERO_RUN:Move(0.1f);}}void SetGameState(int state){switch(state){case HERO_IDLE:point = transform.GetComponent&Animation&().Play(&Idle&);case HERO_WALK:GetComponent&Animation&().Play(&Walk&);case HERO_RUN:GetComponent&Animation&().Play(&Run&);}gameState =}void Move(float speed){if(Mathf.Abs(Vector3.Distance(point,transform.position)) &= 1.3f){CharacterController controller = GetComponent&CharacterController&();Vector3 v = Vector3.ClampMagnitude(point - transform.position,speed);controller.Move(v);}else{SetGameState(HERO_IDLE);}}}
Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);是不是 没有场景里没有
Camera 哦 找不到的话会报错的
未实例化,看看是不是找不到什么组件
你看看camera的tag还是不是MainCamera
登录百度帐号推荐应用

我要回帖

更多关于 on a null reference 的文章

 

随机推荐