关闭

android 出现的问题

标签: android问题
31人阅读 评论(0) 收藏 举报
分类:

问题1 studio问题

 E/dalvikvm: Could not find class

              解决办法1 http://blog.csdn.net/mark_sssss/article/details/51286596

File - Settings -Build,Execution,Deployment - Instant Run,去掉EnableInstant Run...边上的钩,点击OK即可。 强制忽略

 

问题是由于在Android构建工具的版本和Android支持库的不同版

 

更新您的构建工具的版本和支持库的版本到最新的或者你应该使用一个appcompat图书馆低于编译工具版本

 

 

 

 

问题2 Glide问题

 

java.lang.IllegalArgumentException:You cannot start a load for a destroyed activity

 主要是Glide 参数的问题, 

       解决办法:Context 用getApplicationContext()可解决.  不要在子线程中使用.

https://github.com/bumptech/glide/issues/138

 

 

问题3   EventBus问题

 

org.greenrobot.eventbus. Exception: tssuper classes have no public methods with the @Subscribe annotation

 

 添加@Subscribe 在回调方法上, studio必须添加, eclipse 可以不添加

 

 问题4, EventBus问题

 

tabhost 上的fragment注册eventbus 在onstart  中 注册, 不能早onCreateview中注册, 因为tabhost  上的页面, 生命周期 只走一次. 注销在onstop 里

 

问题 5   Caused by: java.lang.UnsupportedOperationException: Can't convert todimension: type=0x1

 

 对于的dimens没有. 解决办法, 默认的要有值values 下要有默认的dimens

 

 问题6: listview 和gridview 获取条目调用Getchat(角标)出现空指针

 

 

  setAdapter()其实是异步的 ,调用了这个方法, ListView或者gridview item并没有立马创建,而是在下一轮消息处理时才创建。弄明白了这个,就有了前面代码中的解决办法:使用 post()提交一个 Runnable()对象,在 Runnable()内部来做默认选中这种初始化动作

 

 

 问题7 FragmentTabHost切换Fragment时避免重复加载UI

不进行缓存那么. 重新进来UI页面将一直重复加载

 

 使用FragmentTabHost时,Fragment之间切换时每次都会调用onCreateView方法,导致每次Fragment的布局都重绘,无法保持Fragment原有状态。

       解决办法:在Fragment onCreateView方法中缓存View

1.    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {  

2.          if(rootView==null){  

3.              rootView=inflater.inflate(R.layout.tab_fragment, null);  

4.          }  

5.   //缓存的rootView需要判断是否已经被加过parent 如果有parent需要从parent删除,要不然会发生这个rootview已经有parent的错误。  

6.          ViewGroup parent = (ViewGroup) rootView.getParent();  

7.          if (parent != null) {  

8.              parent.removeView(rootView);  

9.          }   

10.         return rootView;  

11.     } 

 

 

 

问题8: mainactivy 后台进程的时候内容不能保存,

        解决办法 设置启动模式android:launchMode="singleInstance"
 
06-08 12:01:22.204 27808-27808/? E/MainActivity: onRestart: 
06-08 12:01:22.208 27808-27808/? E/MainActivity: onStart: 
06-08 12:01:22.208 27808-27808/? E/MainActivity: onResume:

 

 

问题9: frgment 用show 和hide来保存状态, 所有的生命周期, 只走一次,

 解决办法  onHiddenChanged 来判断当前状态 是显示还是隐藏
 
 

 

 

问题10: 不要在onResume ,onStrart 中去做一些操作频繁的事情, 比如New 出某个东西

 

问题11 Error:(7,23) 错误:程序包org.apache.http不存在
Error:(8, 36)
错误:程序包org.apache.http.client.utils不存在
Error:(76, 52)
错误:找不到符号
符号:   NameValuePair
位置: NetworkRequest
Error:(78, 22)
错误:找不到符号
符号:   变量URLEncodedUtils
位置: NetworkRequest

 

解决此错误方法:

 

build.gradle(Module:app)下加 

useLibrary 'org.apache.http.legacy'

 

 

问题12 :接入网易云信 出现的问题  ExceptionInInitializerError   // 注册云信网络通话来电

 

 

问题12 :接入网易云信 出现的问题  ExceptionInInitializerError   // 注册云信网络通话来电

要进行判断运行是否是在主线程方法中


public boolean inMainProcess() {
    String packageName = getPackageName();
    String processName = SystemUtil.getProcessName(this);
    return packageName.equals(processName);
}

 

 

13  Context 引起 的内存泄漏 使用BaseApplication 生命周期最长,

 

14 静态类内存泄漏
 一个activity类用静态初始化.  那么在onDestroy中 要设置成null,
public static   MainActivity activity=null;
// 创建实例化,

@Override
protected void onCreate(Bundle savedInstanceState) {
   requestWindowFeature(Window.FEATURE_NO_TITLE);
   super.onCreate(savedInstanceState);
   activity=this;
}
@Override
protected void onDestroy() {
   super.onDestroy();
 
   activity=null;

15 现象描述: 
首次通过下载apk安装的应用,初次运行后home键退出,再次点击图标,结果app会重启(而不是直接显示刚才关闭时的页面); 
通过开发工具eclipse直接运行的工程,却不会如此。而是跟期待的那样点击图标直接进入刚才显示的页面。 
直接上解决办法: 
工程的启动Activity中(如:SplashActivity中)的onCreate方法中加入一下代码即可:

if(!this.isTaskRoot()) {

           System.out.println("Splash_Activity Not isTaskRoot");

            finish();

            return;

        }

 

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:62次
    • 积分:20
    • 等级:
    • 排名:千里之外
    • 原创:2篇
    • 转载:0篇
    • 译文:0篇
    • 评论:0条
    文章分类
    文章存档