我在Android应用程序中使用Phonegap,cordova-2.0.0.我想在我的主布局中使用org.apache.cordova.CordovaWebView.我的主要布局看起来像下面的xml.
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<org.apache.cordova.CordovaWebView
android:id="@+id/mainView"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_centerInParent="true"
/>
</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)
这是一个非常简单的测试应用程序,我按照http://docs.phonegap.com/en/2.0.0/guide_cordova-webview_android.md.html中的步骤操作.除了创建cordova-xxxjar文件之外,我遵循了所有步骤.我从phonegap下载得到cordova-2.0.0.jar并将此jar文件复制到\ libs文件夹.
如果我org.apache.cordova.CordovaWebView从主布局中删除元素,那么它会毫无例外地运行.
作为Android应用程序运行会产生以下错误输出.
eclipse.buildId=M20120914-1800
java.version=1.7.0_03
java.vendor=Oracle Corporation
BootLoader constants: OS=win32, ARCH=x86_64, WS=win32, NL=en_US
Command-line arguments: -os win32 -ws win32 -arch x86_64
Error
Thu Oct 04 21:13:45 PDT 2012
org.apache.cordova.CordovaWebView failed to instantiate.
java.lang.NullPointerException
at org.apache.cordova.CordovaWebView.loadConfiguration(CordovaWebView.java:600)
at org.apache.cordova.CordovaWebView.<init>(CordovaWebView.java:121)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
at java.lang.reflect.Constructor.newInstance(Unknown Source)
at com.android.ide.eclipse.adt.internal.editors.layout.ProjectCallback.instantiateClass(ProjectCallback.java:402)
at com.android.ide.eclipse.adt.internal.editors.layout.ProjectCallback.loadView(ProjectCallback.java:166)
at android.view.BridgeInflater.loadCustomView(BridgeInflater.java:207)
at android.view.BridgeInflater.createViewFromTag(BridgeInflater.java:135)
at android.view.LayoutInflater.rInflate_Original(LayoutInflater.java:746)
at …Run Code Online (Sandbox Code Playgroud)