async-http-client中的FATAL EXCEPTION
无论是Google Map还是百度地图,在使用它们提供的API的时候,都需要申请一个密钥,而这个密钥,都跟SHA1码有关,这个码可以通过下面的方法获取:
方法一:这个方法很简单,但不是所有的eclipse版本都可以,那就是通过eclipse工具栏window-preferences-Android-build里面可以看到SHA1的值。
方法二:运行过android应用之后就会出现debug.keystore这个文件,这时候开命令行运行下面的指令就可以看到指纹签名,keytool这个命令是在JDK/bin下面:
keytool -list -v -keystore "%USERPROFILE%.androiddebug.keystore" -alias androiddebugkey -storepass android -keypass android
Caused by: java.lang.UnsatisfiedLinkError: Native method not found: com.baidu.platform.comjni.map.basemap.JNIBaseMap.Create:()I
网上很多回答呢是说参考百度地图官方的demo,要写一个Application类,然后在manifest文件中引用。
其实完全没有必要,那个Application类其实就是在对BMapManager进行init而已。
如果还没有调用BMapManager的init就去解析带有MapView的xml文件,就会出现上面那个错误。所以大多数朋友都是因为把这条初始化的语句放到了加载布局文件的后面。
所以解决方案就是:在setContentView或者inflate之前调用BMapManager.init就可以了。
AndroidRuntime FATAL EXCEPTION:Thread-xxxx
AndroidRuntime java.lang.NullPointerException
AndroidRuntime at com.loopj.android.http.AsyncHttpResponseHandler.postRunnable(AsyncHttpResponseHandler.java)...
这个的问题很简单,那就是这个库进行联网操作的函数(get、post)不能在多线程里做,只能在主线程里完成。