Google Map App 问题集锦
用此帖记录做Google Map过程中遇到的问题。
一、因为在Manifest.xml文件没有写入<service>,所以导致启动不了Service,但是我明明写了啊。后来发现是自己为了版本控制,有几个project版本。而<service>写在了上一个版本的Manifest.xml文件。真心不该啊!Stupid misstake!
二、 android 获取string.xml中的value
但大家知道R.string.xxx的值是自动生成的int, 如何得到真正的string呢?
可以在Context或Application中使用:
- this.getString(R.string.resource_name)
- getResources().getString(R.string.resource_name)
三、 can't instantiate class com.alexwong.whereru.LocationProcesser; no empty constructor
当我把LocationProcesser这个类继承Service并实现Runnable接口时出现这个错误。原来我只有一个不为空的constructor作为Thread的构造函数,但是Service在start的时候,需要有一个空的构造函数。至于为什么要建一个空参数的和有参数的.因为只要创建了有参数的,就只能用有参数的构造函数,而不能用空参数的,所以要创显式创建一个空参数的构造函数.
四、android.os.NetworkOnMainThreadException
五、Not on the main thread, 原因是我在另一个线程中调用GoogleMap实例的方法。
Exception如下:
05-05 17:37:22.580: E/AndroidRuntime(26704): FATAL EXCEPTION: IntentService[LocationProcesser]
05-05 17:37:22.580: E/AndroidRuntime(26704): java.lang.IllegalStateException: Not on the main thread
多线程操作简单原则:
- 不要Block住主线程(UI线程)
- 不要在UI线程外直接操作 UI