안드로이드 응용 프로그램에서 webview를 사용하고 있으며 설정을 저장 한 후 응용 프로그램이 다시 시작될 때 자동으로 시작되도록하려고합니다. 중단 점을 설정 한 후 나는 라인에 충돌한다 "mWebView.setWebChromeClient (새 WebChromeClient를()"응용 프로그램을 확인할 수 있었다 에러 소스는 디버거에서 찾을 수 없습니다 WebActivity에서 내가 얻을 WebActivityWebview 시작시 안드로이드 응용 프로그램이 충돌합니다.
:..
public class WebActivity extends Activity
{
WebView mWebView;
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
final Activity mActivity = this;
// Adds Progress bar Support
this.getWindow().requestFeature(Window.FEATURE_PROGRESS);
setContentView(R.layout.activity_web);
// Makes Progress bar Visible
getWindow().setFeatureInt(Window.FEATURE_PROGRESS, Window.PROGRESS_VISIBILITY_ON);
mWebView = (WebView) findViewById(R.id.webview);
mWebView.getSettings().setBuiltInZoomControls(true);
mWebView.getSettings().setJavaScriptEnabled(true);
mWebView.getSettings().setDomStorageEnabled(true);
mWebView.setWebViewClient(new WebViewClient());
mWebView.setWebChromeClient(new WebChromeClient()
{
public void onProgressChanged(WebView view, int progress)
{
//Make the bar disappear after URL is loaded, and changes string to Loading...
findViewById(R.id.webview).setVisibility(View.GONE);
mActivity.setTitle("Loading...");
mActivity.setProgress(progress * 100); //Make the bar disappear after URL is loaded
// Return the app name after finish loading
if(progress == 100)
{
mActivity.setTitle(R.string.webtitle);
findViewById(R.id.webview).setVisibility(View.VISIBLE);
}
}
});
Bundle b = getIntent().getExtras();
mWebView.loadUrl("http://" + (b.getString("iptextfield")) + "/index.html");
WebView wv = (WebView) findViewById(R.id.webview);
wv.setWebViewClient(new WebViewClient()
{
boolean toast_f = true;
@Override
public void onReceivedError(WebView view, int errorCode, String description, String failingUrl)
{
Context context = getApplicationContext();
CharSequence text = "Loading...(this may take up to 60 seconds)";
if (toast_f)
{
toast_f = false;
int duration = Toast.LENGTH_LONG;
Toast toast = Toast.makeText(context, text, duration);
toast.setGravity(Gravity.CENTER|Gravity.CENTER,0,0);
toast.show();
}
Bundle b = getIntent().getExtras();
mWebView.loadUrl("http://" + (b.getString("iptextfield")) + "/index.html");
}
});
}
}
주요 활동 : 여기
public class MainActivity extends Activity
{
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
Intent intent;
SharedPreferences sharedPref= getSharedPreferences("mypref", 0);
String GetStatus = sharedPref.getString("DataSaved", "");
if (GetStatus.equals("true"))
{
intent = new Intent(this, WebActivity.class);
}
else
{
intent = new Intent(this, SetupActivity.class);
}
startActivity(intent);
finish();
}
}
그냥 응용 프로그램을 실행할 때 내가 얻을 로그 캣 오류입니다 :
08-19 12:25:54.407: W/dalvikvm(15158): threadid=1: thread exiting with uncaught exception (group=0x4202d438)
08-19 12:25:54.407: E/AndroidRuntime(15158): FATAL EXCEPTION: main
08-19 12:25:54.407: E/AndroidRuntime(15158): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.webpage.WebActivity}: java.lang.NullPointerException
08-19 12:25:54.407: E/AndroidRuntime(15158): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2073)
08-19 12:25:54.407: E/AndroidRuntime(15158): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2098)
08-19 12:25:54.407: E/AndroidRuntime(15158): at android.app.ActivityThread.access$600(ActivityThread.java:138)
08-19 12:25:54.407: E/AndroidRuntime(15158): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1204)
08-19 12:25:54.407: E/AndroidRuntime(15158): at android.os.Handler.dispatchMessage(Handler.java:99)
08-19 12:25:54.407: E/AndroidRuntime(15158): at android.os.Looper.loop(Looper.java:137)
08-19 12:25:54.407: E/AndroidRuntime(15158): at android.app.ActivityThread.main(ActivityThread.java:4911)
08-19 12:25:54.407: E/AndroidRuntime(15158): at java.lang.reflect.Method.invokeNative(Native Method)
08-19 12:25:54.407: E/AndroidRuntime(15158): at java.lang.reflect.Method.invoke(Method.java:511)
08-19 12:25:54.407: E/AndroidRuntime(15158): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:790)
08-19 12:25:54.407: E/AndroidRuntime(15158): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:557)
08-19 12:25:54.407: E/AndroidRuntime(15158): at dalvik.system.NativeStart.main(Native Method)
08-19 12:25:54.407: E/AndroidRuntime(15158): Caused by: java.lang.NullPointerException
08-19 12:25:54.407: E/AndroidRuntime(15158): at com.webpage.WebActivity.onCreate(WebActivity.java:58)
08-19 12:25:54.407: E/AndroidRuntime(15158): at android.app.Activity.performCreate(Activity.java:5240)
08-19 12:25:54.407: E/AndroidRuntime(15158): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1082)
08-19 12:25:54.407: E/AndroidRuntime(15158): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2037)
08-19 12:25:54.407: E/AndroidRuntime(15158): ... 11 more
실제로 예외는 'NullPointerException'입니다. 'WebActivity.java'의''58'' 라인은 무엇입니까? –
@ A - C 행 58은 mWebView.loadUrl ("http : //"(b.getString ("iptextfield")) + "/index.html")입니다. 나는 sharedpreferences에서 iptextfield에 대한 정보를 저장하지 않았습니다. – user2665581
네, 그게 문제가 될 것입니다. 요청한 값이 존재하지 않으면'getString'은 null을 반환합니다. 비 전통적으로 이름 붙여진'GetStatus' 변수는 또한 null이 될 위험이 있습니다. 그러나 – 323go