1. Starting emulator for AVD 'new'emulator: ERROR: x86 emulation currently requires hardware acceleration!Please ensure Intel HAXM is properly installed and usable.CPU acceleration status: HAX kernel module is not installed!
發生情景:建立 Android 模拟器,模拟器 CPU 處理器選擇了 Intel 處理器。啟動報錯
問題原因:電腦上沒有安裝Intel HAXM
解決方案:找到Android sdk所在的目錄。其下有extras\intel\Hardware_Accelerated_Execution_Manager
把該目錄下的intelhaxm.exe安裝一下
2.unable to write jarlist cache file F:\workspace\Android\appcompat_v7\bin\jarlist.cache
發生情景:建立項目,最低相容選擇 2.2,最高選擇 4.4
問題原因:向下相容
解決方案:
方法1:将最低相容選擇同級的,即也是選擇 4.x 系列的即可
[不推薦,因為 Android 應用都是要考慮向下相容的]
方法2:E:\SL\appcompat_v7\res\values-v21\themes_base.xml:191:
說明,要求你的 sdk 為 android5.0 的 sdk,是以,需要把 Property 中 Android 的對應版本改成 5.0 才行
即:将 project.properties 中 target 改為 android-21
3.Error retrieving parent for item: No resource found that matches the given name 'android:Widget.Material.ActionButton'.
......
發生情景:建立項目,最低相容選擇 2.2,最高選擇 4.4
問題原因:向下相容, 檢視項目目錄結構,發現 gen 目錄下沒有 R.java 檔案
解決方案:
方法1:将最低相容選擇同級的,即也是選擇 4.x 系列的即可
[不推薦,因為 Android 應用都是要考慮向下相容的]
方法2:E:\SL\appcompat_v7\res\values-v21\themes_base.xml:191:
說明,要求你的 sdk 為 android5.0 的 sdk,是以,需要把 Property 中 Android 的對應版本改成 5.0 才行
即:将 project.properties 中 target 改為 android-21
4. This version of the rendering library is more recent thanyour version of ADT plug-in. Please update ADT plug-in
發生情景:
eclipse 建立 android 項目時,預覽 layout.xml 檔案時提示: This version of the rendering library is more recent than your version of ADT plug-in. Please update ADT plug-in,導緻無法正常預覽布局檔案
問題原因:編譯的 SDK 版本為 4.4w,SDK版本過高,ADT版本過低
解決方案:
方法1:打開 layout 檔案中的.xml檔案,找到選擇 android 版本按鈕,改變 android 版本,我們改為4.4.2的版本。
方法2:打開 android 項目中的 project.properties,直接修改版本:target=android-19
5. OpSQLite does not specify a android.test.InstrumentationTestRunner instrumentation or does not declare uses-library android.test.runner in its AndroidManifest.xml
發生情景:運作 OpSOLite 的測試方法
問題原因:未配置 Android 下的 junit 測試架構的配置資訊
解決方案:
方法1:按照 junit 測試架構的配置,編輯 AndroidManifest.xml 檔案--->此法不友善,要求記住如何配置
方法2:
1)右鍵---> Android Test Project---> 測試項目名稱(随意寫)---> next---> 選擇要測試的項目---> finish
2)打開測試項目的 AndroidManifest.xml 檔案和要測試的項目的 AndroidManifest.xml 檔案,将前者中的
标簽、 标簽及其内容拷貝到後者中(按前者的樣子粘貼即可)
6. Caused by: libcore.io.ErrnoException: open failed: EROFS (Read-only file system)
發生場景:運作 Android 程式下載下傳檔案到記憶體卡
問題原因:檔案寫入路徑出錯
解決方案:
1) 查詢自己的檔案寫入路徑是否正确?
2) 檢視清單檔案,看是否賦予了android.permission.WRITE_EXTERNAL_STORAGE 權限
7. 建立目錄失敗
發生場景:Android 下建立檔案目錄
問題原因:加入了 isDirectory 的判斷代碼,如下:
public static boolean createDir(String dirpath){
boolean flag = false;
File file = new File(dirpath);
System.out.println("file:" + file);
if(file.isDirectory()){// 判斷該路徑是否為一個目錄
if(!file.exists()){// 判斷該目錄是否存在
file.mkdirs();
System.out.println("done...");
flag = true;
}
} else {
System.out.println("不是目錄路徑");
}
return flag;
}
解決方案:
将原代碼改寫:去掉 isDirectory() 的判斷[注:發現在 Android 下使用 isDirectory 函數,傳遞進來的合法路徑,最終都會給出 false,即不是一個目錄路徑]
public static boolean createDir(String dirpath){
boolean flag = false;
File file = new File(dirpath);
if(!file.exists()){// 判斷該目錄是否存在
file.mkdirs();
System.out.println("done...");
flag = true;
}
return flag;
}
8. E/AndroidRuntime(13254): java.lang.RuntimeException: setAudioSource failed.
發生場景:實作來電監聽錄音
問題原因:錄音需要添加使用者權限
解決方案:添權重限:
9. E/AndroidRuntime(24790): java.lang.IllegalStateException
發生場景:實作來電監聽錄音
問題原因:音頻檔案報錯路徑有誤,未存在的檔案路徑
出錯代碼:
public class PhoneListenerService extends Service {
private final String SAVE_PATH = Environment.getExternalStorageDirectory().getPath() + "/PhoneListener/";
...
private MediaRecorder prepareRecorder() {
...
recorder.setOutputFile(SAVE_PATH + time + ".3gp");
...
}
}
解決方案:
因檔案夾 PhoneListener 本身不存在,故而将 SAVE_PATH 改為 Environment.getExternalStorageDirectory().getPath() + 存在的檔案名 即可