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="true"

        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>

              <action android:name="android.intent.action.MAIN" />

              <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写正确,如果写错误,可能会出现

Android中java.lang.ClassNotFoundException: ***.**** in loader dalvik.system.PathClassLoader 

逆推之,如果出现上述错误,可以查看是否是manifest.xmlname写错



(3)

Android模拟器中push文件时出现Failed to push xx on emulator-5554: Read-only file system错误

这说明该文件夹无读写权限,那么就得对该文件夹进行mount

命令为:

mount -o remount,rw /system

即可



(4)Avoid using "px" as units; use "dp" instead 

android开发当中,在为应用程序布局时,用到了:

android:textSize="24px"

这时发现编译器警告:

Avoid using "px" as units; use "dp" instead

google让我们避免使用px单位了,这是因为px单位大小始终是固定的,而dp单位的大小却可以随着屏幕的大小而改变,所以使用dp可以使应用程序适应任何尺寸的屏幕而不改变UI比例的大小。

androidxml布局当中,经常会看到dipdppxsp等单位,知道它们的作用才可以更加精确的布局UI

dip:英文device independent pixels(设备独立像素)。所有的设备都有一个统一的dip大小(480*320),就是说,androiddip就是把屏幕的高分成了480dip,宽分成了320dip,每个dip在高中表示屏幕的1/480,在宽中表示屏幕的1/320。这样做的好处显而易见,我们可以使应用UI在不同大小的屏幕上都能正常的显示。

dp:完全等同于dip

pxpixels,就是绝对像素。大小固定,不会随着屏幕不同而改变。

spscaled pixels,放大像素,主要用于字体显示,也是为了字体显示可以适应不同大小尺寸的屏幕。




(5)Android命令行截屏screencap

Android下面使用命令行截图。

因为工作调试用的机器,没法连接USB,所以用不了一般的截图方法,后来查了一下,Android4.0以后都内置了截图命令。

可以使用下面命令截取屏幕。

screencap /mnt/card/test.png

这是我在linux shell下执行的命令


执行完就可以把当前屏幕图片保存到SD卡里面(具体路径根据你实际开发机器来看)


除了screencap,还有screenshot,不过试验后,发现截图都是空白的,网上查资料是可以用来截图。


也可能是我这边机器环境问题。



你可能感兴趣的:(纠错)