loadUrl()与CordovaWebView崩溃

时间:2014-08-28 22:16:06

标签: android cordova webview

我知道这里有一些帖子,但他们没有解决我的问题。 事情是:

我有一个Cordova应用程序(android平台)。在我的activity_main.xml中,我已经声明了CordovaWebView,并且我想调用loadUrl()方法来加载我的assets文件夹中的网站。当我调用该方法时,应用程序崩溃显示" UNFORTUNATELY,MyApp已停止"。

我注意到的奇怪的事情:

  • 如果我使用API​​ 10或16的设备进行模拟,则此工作精细。如果我用17测试它会不工作

  • 如果我不使用CordovaWebView并直接调用:this.loadUrl("file:///android_asset/www/index.html");它工作正常,但它就像我没有使用我定义的布局(所以我不会'我有我的广告横幅。)

关于这个问题的任何想法??

谢谢!

activity_main.xml中

    <?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
              xmlns:ads="http://schemas.android.com/apk/lib/com.google.ads"
   android:id="@+id/layout_home"
   android:layout_width="fill_parent"
   android:layout_height="fill_parent">

       <LinearLayout 
            android:id="@+id/layout_body"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:orientation="vertical" 
            android:layout_above="@+id/layout_banner"
            android:background="@color/abc_search_url_text_normal">

            <org.apache.cordova.CordovaWebView
                    android:id="@+id/webview"
                    android:layout_width="match_parent"
                    android:layout_height="0dp"
                    android:layout_weight="1"
                    android:background="@color/common_signin_btn_dark_text_disabled" />
       </LinearLayout>
       <RelativeLayout
            android:id="@+id/layout_banner"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content" 
            android:layout_alignParentBottom="true"
            android:background="@color/wallet_hint_foreground_holo_dark">
       </RelativeLayout>
</RelativeLayout>

MainAcitivy.java

public class MainActivity extends CordovaActivity {

CordovaWebView cwv;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    ..LOAD ADVERTISEMENT INTO LAYOUT_BANNER... 

    cwv = (CordovaWebView) findViewById(R.id.webview);
    cwv.getSettings().setJavaScriptEnabled(true);
    cwv.loadUrl("file:///android_asset/www/index.html");
}

2 个答案:

答案 0 :(得分:0)

查看文档:{​​{3}}

cwv = (CordovaWebView) findViewById(R.id.cordovaview);
Config.init(this);
cwv.loadUrl(Config.getStartUrl());

您可以在此处查看示例:https://cordova.apache.org/docs/en/3.5.0/guide_platforms_android_webview.md.html

答案 1 :(得分:-1)

为什么你需要activity_main.xml和所有android东西,只需使用cordova命令行启动一个新项目。在标准的cordova项目中,您不需要任何类型的xml。

你有用于在cordova网页视图中显示admob广告的cordova插件,请参阅http://plugreg.com/search?q=admob