Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 尝试使用createNewLayerBuilder()添加新的CyborgController时,应用程序崩溃_Android_Cyborg - Fatal编程技术网

Android 尝试使用createNewLayerBuilder()添加新的CyborgController时,应用程序崩溃

Android 尝试使用createNewLayerBuilder()添加新的CyborgController时,应用程序崩溃,android,cyborg,Android,Cyborg,这就是我在应用程序类中所做的: @Override public void onCreate() { super.onCreate(); CyborgBuilder.startCyborg(new CyborgConfiguration(this, R.layout.cyborgview__auto_reply, BasicModulePack.class)); } 这就是cyborgview__auto_reply.xml的样子: <?xml version="1.0"

这就是我在应用程序类中所做的:

@Override
public void onCreate() {
    super.onCreate();
    CyborgBuilder.startCyborg(new CyborgConfiguration(this, R.layout.cyborgview__auto_reply, BasicModulePack.class));
}
这就是cyborgview__auto_reply.xml的样子:

<?xml version="1.0" encoding="utf-8"?>
<com.nu.art.cyborg.core.CyborgView
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:cyborg="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
cyborg:controller="com.hedshafran.autoreply.controllers.Controller_PermissionScreen"
cyborg:tag="Controller_Permission"/>
导致崩溃的原因如下:

E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.hedshafran.autoreply, PID: 17910
java.lang.RuntimeException: Unable to resume activity {com.hedshafran.autoreply/com.nu.art.cyborg.core.CyborgActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'com.nu.art.cyborg.core.CyborgStackController$StackLayerBuilder com.nu.art.cyborg.core.CyborgStackController.createLayerBuilder()' on a null object reference
  at android.app.ActivityThread.performResumeActivity(ActivityThread.java:3791)
  at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:3832)
  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1681)
  at android.os.Handler.dispatchMessage(Handler.java:102)
  at android.os.Looper.loop(Looper.java:154)
  at android.app.ActivityThread.main(ActivityThread.java:6682)
  at java.lang.reflect.Method.invoke(Native Method)
  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1520)
  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1410)
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'com.nu.art.cyborg.core.CyborgStackController$StackLayerBuilder com.nu.art.cyborg.core.CyborgStackController.createLayerBuilder()' on a null object reference
  at com.nu.art.cyborg.core.CyborgController.createNewLayerBuilder(CyborgController.java:506)
  at com.hedshafran.autoreply.controllers.Controller_PermissionScreen.onResume(Controller_PermissionScreen.java:35)
  at com.nu.art.cyborg.core.CyborgController.dispatchLifeCycleEvent(CyborgController.java:270)
  at com.nu.art.cyborg.core.CyborgActivityBridgeImpl.dispatchLifecycleEvent(CyborgActivityBridgeImpl.java:476)
  at com.nu.art.cyborg.core.CyborgActivityBridgeImpl.onResume(CyborgActivityBridgeImpl.java:213)
  at com.nu.art.cyborg.core.CyborgActivity.onResume(CyborgActivity.java:155)
  at android.app.Instrumentation.callActivityOnResume(Instrumentation.java:1277)
  at android.app.Activity.performResume(Activity.java:7088)
  at android.app.ActivityThread.performResumeActivity(ActivityThread.java:3768)
  at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:3832) 
  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1681) 
  at android.os.Handler.dispatchMessage(Handler.java:102) 
  at android.os.Looper.loop(Looper.java:154) 
  at android.app.ActivityThread.main(ActivityThread.java:6682) 
  at java.lang.reflect.Method.invoke(Native Method) 
  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1520) 
  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1410) 
我如何才能避免崩溃并以正确的方式打开新的CyborgController?

您的cyborgview\uu auto\u reply.xml应该使用CyborgStackConroller,它将包含控制器权限屏幕,如下所示:

<?xml version="1.0" encoding="utf-8"?>
<com.nu.art.cyborg.core.CyborgView
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:cyborg="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:id="@+id/CV_RootStack"
    cyborg:controller="com.nu.art.cyborg.core.CyborgStackController"
    cyborg:rootController="com.hedshafran.autoreply.controllers.Controller_PermissionScreen"

    cyborg:rootTag="Controller_Permission"
    cyborg:tag="RootStack"
    />

关键是,如果调用此方法的控制器位于堆栈中,则只能使用createNewLayerBuilderapi。否则,使用getcontrollerbyd(R.id.CV\u RootStack)并创建一个新的图层生成器

<?xml version="1.0" encoding="utf-8"?>
<com.nu.art.cyborg.core.CyborgView
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:cyborg="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:id="@+id/CV_RootStack"
    cyborg:controller="com.nu.art.cyborg.core.CyborgStackController"
    cyborg:rootController="com.hedshafran.autoreply.controllers.Controller_PermissionScreen"

    cyborg:rootTag="Controller_Permission"
    cyborg:tag="RootStack"
    />