Android開發中遇到的錯誤及解決方法(1)
(1)Android APK安裝後不在桌面生成快捷方式圖示
大家知道在Android系統的手機安裝APK應用後會在桌面上生成此APK的快捷方式,使用者通過直接點選可以進入此應用程式。但作為開發人員,我們有時候並不希望在安裝APK完成後生成快捷方式,而是通過先進入某個應用程式,然後在此應用程式中進入另一個應用程式,那麼該怎麼在安裝完APK後不生成桌面快捷方式呢?
開啟AndroidMainfest.xml檔案:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.ok"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="17" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<application
android:allowBackup
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name="com.example.ok.MainActivity"
android:label="@string/app_name" >
<intent-filter>
<
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
在這裡只要將activity中的“<category android:name="android.intent.category.LAUNCHER" />”去掉便可防止在安裝完APK後生成桌面快捷方式。
(2)
01-01 21:39:06.344: E/AndroidRuntime(2387): Caused by: java.lang.ClassCastException: android.app.Application cannot be cast to cn.com.shine.hospital.television.TVRootApp
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:name=".TVRootApp"
>
出現這個的錯誤原因就是在manifest.xml檔案中沒有加
android:name=".TVRootApp"
這句話
一定要把name寫正確,如果寫錯誤,可能會出現
逆推之,如果出現上述錯誤,可以檢視是否是manifest.xml中name寫錯
(3)
向Android模擬器中push檔案時出現Failed to push xx on emulator-5554: Read-only file system錯誤
這說明該資料夾無讀寫許可權,那麼就得對該資料夾進行mount
命令為:
mount -o remount,rw /system
即可
android開發當中,在為應用程式佈局時,用到了:
android:textSize="24px"
這時發現編譯器警告:
Avoid using "px" as units; use "dp" instead
google讓我們避免使用px單位了,這是因為px單位大小始終是固定的,而dp單位的大小卻可以隨著螢幕的大小而改變,所以使用dp可以使應用程式適應任何尺寸的螢幕而不改變UI比例的大小。
在android的xml佈局當中,經常會看到dip、dp、px、sp等單位,知道它們的作用才可以更加精確的佈局UI。
dip:英文device independent pixels(裝置獨立畫素)。所有的裝置都有一個統一的dip大小(480*320),就是說,android的dip就是把螢幕的高分成了480個dip,寬分成了320個dip,每個dip在高中表示螢幕的1/480,在寬中表示螢幕的1/320。這樣做的好處顯而易見,我們可以使應用UI在不同大小的螢幕上都能正常的顯示。
dp:完全等同於dip。
px:pixels,就是絕對畫素。大小固定,不會隨著螢幕不同而改變。
sp:scaled pixels,放大畫素,主要用於字型顯示,也是為了字型顯示可以適應不同大小尺寸的螢幕。
Android下面使用命令列截圖。
因為工作除錯用的機器,沒法連線USB,所以用不了一般的截圖方法,後來查了一下,Android4.0以後都內建了截圖命令。
可以使用下面命令擷取螢幕。
screencap /mnt/card/test.png
這是我在linux shell下執行的命令
執行完就可以把當前螢幕圖片儲存到SD卡里面(具體路徑根據你實際開發機器來看)
除了screencap,還有screenshot,不過試驗後,發現截圖都是空白的,網上查資料是可以用來截圖。
也可能是我這邊機器環境問題。