天天看點

x86 android baocuo,Android報錯

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() + 存在的檔案名 即可