自2014年11月21日以来,我收到了以下堆栈的数百个崩溃报告。
崩溃仅发生在API级别10设备上(该应用程序支持9+)
在崩溃开始前的几个星期,该应用程序的同一版本运行良好。这使我认为该问题是由最近推送至Android 2.3设备的一些无线更新引起的。
我在应用程序中使用AdMob中介(现在已成为Google Play服务库的一部分)和其他几个广告网络SDK。
我怀疑Google Play服务库是导致崩溃的原因,因为据我所知,它是该应用程序中唯一可以通过无线方式进行更新的部分(而且这并不是第一次进行错误更新)导致崩溃)。
是否有可能,由有机磷农药提到的答案在这里,是一个未捕获的异常由AdMob建立以显示横幅广告的线程内触发可能把整个过程在它不能再创建类的新实例的状态?
最近有人遇到过类似的问题吗?
java.lang.NoClassDefFoundError: com.myapp.MyClassExtendingAsyncTask
at com.myapp.x.run(SourceFile:417)
at android.os.Handler.handleCallback(Handler.java:587)
at android.os.Handler.dispatchMessage(Handler.java:92)
at android.os.Looper.loop(Looper.java:130)
at android.app.ActivityThread.main(ActivityThread.java:3859)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:507)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:889)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:647)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.ClassNotFoundException: com.myapp.MyClassExtendingAsyncTask in loader dalvik.system.PathClassLoader[/data/app/com.myapp-1.apk]
at dalvik.system.PathClassLoader.findClass(PathClassLoader.java:240)
at java.lang.ClassLoader.loadClass(ClassLoader.java:551)
at java.lang.ClassLoader.loadClass(ClassLoader.java:511)
... 10 more
好的,这似乎是其中一种版本的Google Play服务存在问题。请参阅https://code.google.com/p/android/issues/detail?id=81083
似乎可以解决的方法是将以下内容添加到您的Application#onCreate()
:
package acme.com.myAppName;
import android.app.Application;
public class MyApplication extends Application
{
@Override
public void onCreate()
{
// begin add
try {
Class.forName("android.os.AsyncTask");
} catch(Throwable ignore) {
}
// end add
super.onCreate();
}
}
注意:不要忘记在您的应用程序类中进行配置AndroidManifest.xml
(如果尚未配置)。
<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme"
android:name="acme.com.myAppName.MyApplication" >
...
</application>
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句