在Google Play控制台中,我可以看到抱怨用户的崩溃报告,因为我的应用程序在启动后崩溃了。原因似乎是在实例化HttpClient时抛出的异常。我做错了什么?
以下是堆栈跟踪的摘录:
java.lang.IllegalArgumentException: androidApplicationContext must be not null! at org.apache.http.impl.client.naf.gba.connector.GbaServiceConnectorSynchronizedSingleton.instance(GbaServiceConnectorSynchronizedSingleton.java:76) at org.apache.http.impl.client.naf.gba.shared.KeeperManager.init(KeeperManager.java:68) at org.apache.http.impl.client.naf.auth.NafHttpAuthStrategyDefault.initSharedResources(NafHttpAuthStrategyDefault.java:119) at org.apache.http.impl.client.naf.auth.NafHttpAuthStrategyDefault.(NafHttpAuthStrategyDefault.java:95) at org.apache.http.impl.client.AbstractHttpClient.(AbstractHttpClient.java:168) at org.apache.http.impl.client.DefaultHttpClient.(DefaultHttpClient.java:113)
答案 0 :(得分:9)
一些Android设备,如T-Mobile MyTouch Q,使用Apache HttpClient库的自定义实现。在这样的设备上,创建不在主线程中的应用程序的第一个HttpClient将导致抛出异常:
java.lang.IllegalArgumentException:androidApplicationContext必须不为空!
在我的特定情况下,由于分析库,它被抛入GbaServiceConnectorSynchronizedSingleton.java第76行。
以下是允许重现问题的测试用例的链接: https://gist.github.com/Bastoche/6133227