Chromium WebView不存在

时间:2014-07-29 16:00:08

标签: java android cordova

我正在尝试使用Phonegap创建一个Hello World应用程序,但是当我调用在模拟器上运行应用程序时它会崩溃。我遵循了准则here。以下是我在MainActivity.java上的内容:

  package com.example.hello;

import android.os.Bundle;
import org.apache.cordova.*;

public class HelloWorld extends CordovaActivity 
{
    @Override
    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        super.init();
        // Set by <content src="index.html" /> in config.xml
        super.loadUrl(Config.getStartUrl());
        //super.loadUrl("file:///android_asset/www/index.html");
    }
}

这是我的AndroidManifest.xml:

<?xml version='1.0' encoding='utf-8'?>
<manifest android:hardwareAccelerated="true" android:versionCode="1" android:versionName="0.0.1" android:windowSoftInputMode="adjustPan" package="com.example.hello" xmlns:android="http://schemas.android.com/apk/res/android">
    <supports-screens android:anyDensity="true" android:largeScreens="true" android:normalScreens="true" android:resizeable="true" android:smallScreens="true" android:xlargeScreens="true" />
    <uses-permission android:name="android.permission.INTERNET" />
    <application android:hardwareAccelerated="true" android:icon="@drawable/icon" android:label="@string/app_name">
        <activity android:configChanges="orientation|keyboardHidden|keyboard|screenSize|locale" android:label="@string/app_name" android:launchMode="singleTop" android:name="HelloWorld" android:theme="@android:style/Theme.Black.NoTitleBar">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>
    <uses-sdk android:minSdkVersion="10" android:targetSdkVersion="20" />
</manifest>

这是我得到的第一个错误:

  1. Chromium WebView不存在
  2. 致命例外:主要
  3. java.lang.RuntimeException:无法启动活动 ComponentInfo {com.example.deneme / com.example.deneme.MainActivity}: java.lang.UnsupportedOperationException
  4. 你能告诉我这个应用程序有什么问题吗?感谢。

1 个答案:

答案 0 :(得分:6)

实际上,并非每部Android手机都附带Chromium作为WebView引擎(https://developer.chrome.com/multidevice/webview/overview)。例如,我的带有Android 4.1.2的三星Galaxy Ace2有旧的WebView引擎。用户代理字符串表示一些未知的Mozilla版本,HTML5应用程序的外观和感觉以及行为与Chrome不同。但是,PhoneGap应用程序不会在手机上引发错误。

我不知道为什么你会得到“Chromium WebView不存在”错误,但是因为你正在开始路上(因为你正在尝试使用Phonegap构建Hello World应用程序)我想要指向另一种选择。使用Crosswalk项目允许您不要在每个Android设备上处理各种WebView引擎,而是使用嵌入在您的应用程序chrome引擎中 - 在每个Android设备上始终相同。人行横道项目适用于android和tizen平台。因此,为了构建跨平台应用程序(android和iOS),我建议使用

  • Intel XDK,可以使用单个html5源代码与XDK api和Cordova api,可以使用crosswalk编译到Android应用程序或使用本机WebView编译到iOS。
  • Crosswalk+Cordova构建Android应用程序和PhoneGap以从相同的来源构建iOS应用程序

这种方法可以消除支持各种Android设备的痛苦。

另见:

http://html5hub.com/building-cordova-applications-with-crosswalk/

https://groups.google.com/forum/#!topic/phonegap/IxSuRUScbMs