简体   繁体   English

AppWidgetHost崩溃android.os.TransactionTooLargeException

[英]AppWidgetHost crash android.os.TransactionTooLargeException

I'm working on a custom android launcher. 我正在开发一个自定义的Android启动器。 After I add some widgets (Samsung gallery, Favourite direct dial), every time I restart the app I obtain a crash. 在我添加一些小部件(三星画廊,收藏直接拨号)后,每次重新启动应用程序时都会崩溃。 This is the code: 这是代码:

public static final int APPWIDGET_HOST_ID = 128;

    public final class Launcher extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState); 
        mAppWidgetManager = AppWidgetManager.getInstance(this);
        mAppWidgetHost = new AppWidgetHost(this, APPWIDGET_HOST_ID);
        mAppWidgetHost.startListening(); //Here it crash
        ...
    }
}

This is the error log: 这是错误日志:

    java.lang.RuntimeException: Unable to start activity ComponentInfo{custom.launcherpro/custom.launcher.launcher.Launcher}: java.lang.RuntimeException: system server dead?
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2305)
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2363)
    at android.app.ActivityThread.access$900(ActivityThread.java:161)
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1265)
    at android.os.Handler.dispatchMessage(Handler.java:102)
    at android.os.Looper.loop(Looper.java:157)
    at android.app.ActivityThread.main(ActivityThread.java:5356)
    at java.lang.reflect.Method.invokeNative(Native Method)
    at java.lang.reflect.Method.invoke(Method.java:515)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1265)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1081)
    at dalvik.system.NativeStart.main(Native Method)
 Caused by: java.lang.RuntimeException: system server dead?
    at android.appwidget.AppWidgetHost.startListening(AppWidgetHost.java:166)
    at custom.launcher.launcher.Launcher.onCreate(Launcher.java:181)
    at android.app.Activity.performCreate(Activity.java:5426)
    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1105)
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2269)
    ... 11 more
 Caused by: android.os.TransactionTooLargeException
    at android.os.BinderProxy.transact(Native Method)
    at com.android.internal.appwidget.IAppWidgetService$Stub$Proxy.startListening(IAppWidgetService.java:465)
    at android.appwidget.AppWidgetHost.startListening(AppWidgetHost.java:162)

This happens on android 4.4 (but even on older android version) What does it mean? 这发生在Android 4.4(但即使在较旧的Android版本)这是什么意思? How can I prevent it? 我该怎样预防呢?

Thank you, Vincenzo 谢谢你,文森佐

See TransactionTooLargeException in the docs. 请参阅文档中的TransactionTooLargeException If you look at the source for AppWidgetHost you will find this code mentioned in your trace: 如果您查看AppWidgetHost的源代码,您将在跟踪中找到此代码:

ArrayList<RemoteViews> updatedViews = new ArrayList<RemoteViews>();
// ....
updatedIds = sService.startListening(mCallbacks, mPackageName, mHostId, updatedViews);

In this case the updatedViews is an array of RemoteViews. 在这种情况下,updatedViews是一个RemoteViews数组。 Those can be quite large if they contain a lot of images. 如果它们包含大量图像,那些可能会非常大。 Do you have some widgets with huge images in them or something? 你有一些小部件,里面有大量的图像吗?

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 Unity Android 游戏崩溃 android.os.TransactionTooLargeException - Unity Android Game crash android.os.TransactionTooLargeException 启动器中的android.os.transactiontoolargeexception - android.os.transactiontoolargeexception in Launcher android.os.TransactionTooLargeException的牛轧糖 - android.os.TransactionTooLargeException on Nougat Android中的android.os.TransactionTooLargeException错误 - android.os.TransactionTooLargeException error in Android 如何避免得到“android.os.TransactionTooLargeException” - how to avoid getting the “android.os.TransactionTooLargeException” 随机抛出android.os.TransactionTooLargeException - android.os.TransactionTooLargeException thrown randomly AppWidgetManager.updateAppWidget中的android.os.TransactionTooLargeException - android.os.TransactionTooLargeException in AppWidgetManager.updateAppWidget 反应原生 - android.os.TransactionTooLargeException - React Native - android.os.TransactionTooLargeException android.os.TransactionTooLargeException检索已安装的应用程序 - android.os.TransactionTooLargeException retrieving installed applications ForegroundService通知的android.os.TransactionTooLargeException - android.os.TransactionTooLargeException for ForegroundService notification
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM