1

XWalkView を使用した Android ネイティブ アプリがあります。html5 ビデオ フルスクリーン モード (youtube または単純な html ビデオ タグ) に入るまで、すべて正常に動作します。

logcat でエラーが発生し、アプリケーションがクラッシュしました:

03-01 23:23:27.759 7879-7879/? E/chromium﹕ [ERROR:xwalk_autofill_client.cc(116)] 仮想 void xwalk::XWalkAutofillClient::OnFirstUserGestureObserved() に到達した未実装

03-01 23:23:27.909 7879-7879/? A/chromium﹕ [FATAL:jni_android.cc(249)] チェックに失敗しました: false. クラッシュ レポートに Java 例外スタックを含めてください

03-01 23:23:27.909 7879-7879/? A/libc﹕ 致命的なシグナル 11 (SIGSEGV) 0xdeadbaad (code=1)、スレッド 7879 (eu.my.app.MyApp)

アプリケーション コードは、crosswalk Web サイトの単なる例です。

public class MyActivity extends XWalkActivity {
XWalkView mXwalkView;

class MyResourceClient extends XWalkResourceClient {
    MyResourceClient(XWalkView view) {
        super(view);
    }

    @Override
    public WebResourceResponse shouldInterceptLoadRequest(XWalkView view, String url) {
        return super.shouldInterceptLoadRequest(view, url);
    }
}

class MyUIClient extends XWalkUIClient {
    MyUIClient(XWalkView view) {
        super(view);
    }

    @Override
    public void onFullscreenToggled(XWalkView view, boolean enterFullscreen) {
        super.onFullscreenToggled(view, enterFullscreen);
    }
}

@Override
public void addContentView(View view, ViewGroup.LayoutParams params) {
    super.addContentView(view, params);
}

@Override
protected void onXWalkReady() {
    mXwalkView = new XWalkView(this, this);
    setContentView(R.layout.main);
    ((FrameLayout) findViewById(R.id.myContainer)).addView(mXwalkView);
    mXwalkView.setResourceClient(new MyResourceClient(mXwalkView));
    mXwalkView.setUIClient(new MyUIClient(mXwalkView));
    mXwalkView.load("http://www.youtube.com/", null);
}

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
}

@Override
public Window getWindow() {
    return super.getWindow();
}

@Override
protected void onPause() {
    super.onPause();
    if (mXwalkView != null) {
        mXwalkView.pauseTimers();
        mXwalkView.onHide();
    }
}

@Override
protected void onResume() {
    super.onResume();
    if (mXwalkView != null) {
        mXwalkView.resumeTimers();
        mXwalkView.onShow();
    }
}

@Override
protected void onDestroy() {
    super.onDestroy();
    if (mXwalkView != null) {
        mXwalkView.onDestroy();
    }
}

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    if (mXwalkView != null) {
        mXwalkView.onActivityResult(requestCode, resultCode, data);
    }
}

@Override
protected void onNewIntent(Intent intent) {
    if (mXwalkView != null) {
        mXwalkView.onNewIntent(intent);
    }
}
}
4

0 に答える 0