gpt4 book ai didi

android - 重写 WebSettings cordovaExample.java 导致 PhoneGap 出错

转载 作者:太空宇宙 更新时间:2023-11-03 13:02:01 26 4
gpt4 key购买 nike

对于有经验的 android 程序员来说,这应该很容易。不幸的是我对android sdk一无所知。我正在使用 PhoneGap 打包 Web 应用程序,我需要覆盖 cordovaExample.java 中的 WebSettings(现在我正在使用 cordovaExample 作为我的应用程序的模板)。我的代码如下所示:

package org.apache.cordova.example;

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

public class cordovaExample extends DroidGap
{
@Override
public void onCreate(Bundle savedInstanceState)
{
this.appView.getSettings().setUseWideViewPort(true);
this.appView.getSettings().setLoadWithOverviewMode(true);
super.onCreate(savedInstanceState);
super.loadUrl("file:///android_asset/www/index.html");
}
}

我可以毫无问题地运行 ant debug install 但是当我在模拟器中启动应用程序时,出现以下错误:

E/AndroidRuntime(  549): java.lang.RuntimeException: Unable to start activity ComponentInfo{org.apache.cordova.example/org.apache.cordova.example.cordovaExample}: java.lang.NullPointerException
E/AndroidRuntime( 549): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1956)
E/AndroidRuntime( 549): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1981)
E/AndroidRuntime( 549): at android.app.ActivityThread.access$600(ActivityThread.java:123)
E/AndroidRuntime( 549): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1147)
E/AndroidRuntime( 549): at android.os.Handler.dispatchMessage(Handler.java:99)
E/AndroidRuntime( 549): at android.os.Looper.loop(Looper.java:137)
E/AndroidRuntime( 549): at android.app.ActivityThread.main(ActivityThread.java:4424)
E/AndroidRuntime( 549): at java.lang.reflect.Method.invokeNative(Native Method)
E/AndroidRuntime( 549): at java.lang.reflect.Method.invoke(Method.java:511)
E/AndroidRuntime( 549): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
E/AndroidRuntime( 549): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
E/AndroidRuntime( 549): at dalvik.system.NativeStart.main(Native Method)
E/AndroidRuntime( 549): Caused by: java.lang.NullPointerException
E/AndroidRuntime( 549): at org.apache.cordova.example.cordovaExample.onCreate(cordovaExample.java:12)
E/AndroidRuntime( 549): at android.app.Activity.performCreate(Activity.java:4465)
E/AndroidRuntime( 549): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1049)
E/AndroidRuntime( 549): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1920)
E/AndroidRuntime( 549): ... 11 more
W/ActivityManager( 78): Force finishing activity org.apache.cordova.example/.cordovaExample

无论我为 android sdk 2.1 还是 4.3(在 Mac OS X Lion 上)打包,都会出现错误。

非常感谢任何帮助。

最佳答案

错误表明第 12 行出现 NullPointerException:

this.appView.getSettings().setUseWideViewPort(true);

要么 this.appView 为 null,要么 appView.getSettings() 返回 null。添加空值检查并查看它是哪一个。一旦知道空值是哪一个,就会更容易找出为什么那里有空值。

此外,与问题无关,不确定是否是拼写错误,但您的类名是驼峰式的。这样做是违反最佳实践的。以后这样做会让您感到困惑,因为驼峰命名法仅用于实例变量、成员和方法。类名总是首字母大写,包名总是小写。所以应该是

CordovaExample

而不是

cordovaExample

关于android - 重写 WebSettings cordovaExample.java 导致 PhoneGap 出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10048397/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com