[整理]写Android+PHP+MySQL时遇到的问题

1、Android中 不可以直接使用JDBC链接服务器
    原因:Android无法存放库
              可能引起反序列化导致的漏洞
    解决途径:可以使用简易架构: Android访问PHP,由PHP链接服务器,获取表信息,PHP解析为JSON,Android中通过HttpCilent链接PHP,获取JSON数据,解析建立对象

2、Android中,HttpCilent链接需要在非主线程中打开
    原因:在Android4.0 之后,主线程只用来绘制界面
    解决方法:自建Thread

3、在Activity之间用Intent,无法传递User对象(i.putExtra())
    原因:如果传递User对象,需要用到序列化IO中,让对象实现Serializable接口,同时其包含的对象 也需要实现Serializable接口;
    解决方法:让ScoreBin 实现 Serializable接口;

4、XML无法创建
    原因:AndroidManifest 无法正常工作
    解决方法:需要检查AndroidManifest所相关的所有View,主要检查:是否注册,是否有关键属性(width,height),所对应Class是否正确关联。

5、ClassNotFoundError
    原因:在Android中,通过Eclipse是无法关联到相关lib的,需要手动将jar导入到lib文件夹中。
    解决方法:手动导入
    注意:该错误与ClassNotFoundException相类似,ClassNotFoundException是找不到类,而ClassNotFoundError是找不到适合的类

6、XML的UI中JPG无法透明
       原因:JPG格式中,透明处会自动填充白色
       解决方法:改为PNG格式

7、XML中,GridLayout是无法正确平分每一个格子的
    原因:底层代码缺陷
    解决方法:改用LinearLayout多次套用

8、在PHP中,GET模式:Http://Locahost/FirstPHP/index.php?select=login
    注意,变量赋值不需要引号
   (如果存在例如: xxx-xxx-xxx  其中有 “-”,需要在PHP端 写 MySQL语句的时候,特别使用 \" xxx-xxx-xxx\" 转译引号)

9、在非UI线程中,无法使用Toast
    原因:Toast属于UI
    解决方法:将Toast前后加Looper.prepare(); Looper.loop();使这条语句进入UI线程

10、关于构造方法默认构造写法,加强内聚
     aliDemo
     public DBTest() {    this("/DBConf.properties");   } 
     public DBTest(String conf) {    loadProperties(conf);    //setConn();  }

猜你喜欢

转载自blog.csdn.net/qq_27307641/article/details/52758697
今日推荐