[整理]寫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(); }
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章