簡體   English   中英

如何解決Webview Browser Android應用程序中的錯誤?

[英]How Solve error in Webview Browser Android Application?

我是Android的新手。 我正在嘗試構建一個簡單的Web視圖瀏覽器android應用程序。 此應用程序對我很重要。但是應用程序無法打開並崩潰。logcat中有很多錯誤。如何解決此錯誤。 請任何程序員幫助我。 謝謝

記錄錯誤txt

 11-14 13:31:03.922: E/AndroidRuntime(901): FATAL EXCEPTION: main 11-14 13:31:03.922: E/AndroidRuntime(901): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.ronny.yesjarweb/com.ronny.yesjarweb.MainActivity}: java.lang.NullPointerException 11-14 13:31:03.922: E/AndroidRuntime(901): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2059) 11-14 13:31:03.922: E/AndroidRuntime(901): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2084) 11-14 13:31:03.922: E/AndroidRuntime(901): at android.app.ActivityThread.access$600(ActivityThread.java:130) 11-14 13:31:03.922: E/AndroidRuntime(901): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1195) 11-14 13:31:03.922: E/AndroidRuntime(901): at android.os.Handler.dispatchMessage(Handler.java:99) 11-14 13:31:03.922: E/AndroidRuntime(901): at android.os.Looper.loop(Looper.java:137) 11-14 13:31:03.922: E/AndroidRuntime(901): at android.app.ActivityThread.main(ActivityThread.java:4745) 11-14 13:31:03.922: E/AndroidRuntime(901): at java.lang.reflect.Method.invokeNative(Native Method) 11-14 13:31:03.922: E/AndroidRuntime(901): at java.lang.reflect.Method.invoke(Method.java:511) 11-14 13:31:03.922: E/AndroidRuntime(901): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786) 11-14 13:31:03.922: E/AndroidRuntime(901): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553) 11-14 13:31:03.922: E/AndroidRuntime(901): at dalvik.system.NativeStart.main(Native Method) 11-14 13:31:03.922: E/AndroidRuntime(901): Caused by: java.lang.NullPointerException 11-14 13:31:03.922: E/AndroidRuntime(901): at android.view.ViewGroup.addViewInner(ViewGroup.java:3377) 11-14 13:31:03.922: E/AndroidRuntime(901): at android.view.ViewGroup.addView(ViewGroup.java:3249) 11-14 13:31:03.922: E/AndroidRuntime(901): at android.view.ViewGroup.addView(ViewGroup.java:3225) 11-14 13:31:03.922: E/AndroidRuntime(901): at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:275) 11-14 13:31:03.922: E/AndroidRuntime(901): at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:265) 11-14 13:31:03.922: E/AndroidRuntime(901): at android.app.Activity.setContentView(Activity.java:1887) 11-14 13:31:03.922: E/AndroidRuntime(901): at android.support.v7.app.ActionBarActivity.superSetContentView(ActionBarActivity.java:220) 11-14 13:31:03.922: E/AndroidRuntime(901): at android.support.v7.app.ActionBarActivityDelegateICS.setContentView(ActionBarActivityDelegateICS.java:105) 11-14 13:31:03.922: E/AndroidRuntime(901): at android.support.v7.app.ActionBarActivity.setContentView(ActionBarActivity.java:81) 11-14 13:31:03.922: E/AndroidRuntime(901): at com.ronny.yesjarweb.MainActivity.onCreate(MainActivity.java:52) 11-14 13:31:03.922: E/AndroidRuntime(901): at android.app.Activity.performCreate(Activity.java:5008) 11-14 13:31:03.922: E/AndroidRuntime(901): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1079) 11-14 13:31:03.922: E/AndroidRuntime(901): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2023) 11-14 13:31:03.922: E/AndroidRuntime(901): ... 11 more 

MainActivity.java

 package com.example.package; import android.annotation.SuppressLint; import android.app.DownloadManager; import android.app.DownloadManager.Request; import android.graphics.Bitmap; import android.net.Uri; import android.os.Bundle; import android.os.Environment; import android.support.v7.app.ActionBarActivity; import android.util.Log; import android.view.KeyEvent; import android.view.Menu; import android.view.MenuInflater; import android.view.MenuItem; import android.view.View; import android.webkit.MimeTypeMap; import android.webkit.WebChromeClient; import android.webkit.WebSettings; import android.webkit.WebSettings.PluginState; import android.webkit.WebView; import android.webkit.WebViewClient; import android.widget.Toast; import java.io.File; import java.io.UnsupportedEncodingException; import java.net.URLDecoder; public class MainActivity extends ActionBarActivity { private static final View activity_main = null; private static final int exit = 0; public static File localFile2 = null; Toast toast; WebView webview; private int yesjar_web; private int main; private int refresh; private int back; private int forward; public String getFileName(String paramString) throws UnsupportedEncodingException { return URLDecoder.decode(paramString.substring(1 + paramString.lastIndexOf('/')), "UTF-8"); } @SuppressLint({"SetJavaScriptEnabled", "NewApi"}) protected void onCreate(Bundle paramBundle) { super.onCreate(paramBundle); setContentView(activity_main); this.webview = ((WebView)findViewById(yesjar_web)); this.webview.setWebChromeClient(new WebChromeClient() { private CharSequence app_name; public void onProgressChanged(WebView paramAnonymousWebView, int paramAnonymousInt) { MainActivity.this.setTitle("Loading..."); MainActivity.this.setProgress(paramAnonymousInt * 100); if (paramAnonymousInt == 100) { MainActivity.this.setTitle(app_name); } } }); this.webview.setLayerType(1, null); ChildBrowserClient localChildBrowserClient = new ChildBrowserClient(); this.webview.setWebViewClient(localChildBrowserClient); WebSettings localWebSettings = this.webview.getSettings(); this.webview.setInitialScale(1); localWebSettings.setBuiltInZoomControls(true); localWebSettings.setPluginState(WebSettings.PluginState.ON); localWebSettings.setDomStorageEnabled(true); this.webview.loadUrl("http://google.com"); this.webview.setId(5); this.webview.setInitialScale(0); this.webview.requestFocus(); this.webview.requestFocusFromTouch(); } public boolean onCreateOptionsMenu(Menu paramMenu) { getMenuInflater().inflate(main, paramMenu); return true; } public boolean onKeyDown(int paramInt, KeyEvent paramKeyEvent) { if ((paramInt == 4) && (this.webview.canGoBack())) { this.webview.goBack(); return true; } return super.onKeyDown(paramInt, paramKeyEvent); } public boolean onOptionsItemSelected(MenuItem paramMenuItem) { int i = paramMenuItem.getItemId(); if (i == refresh) { String str = this.webview.getUrl().toString(); this.webview.loadUrl(str); return true; } if (i == back) { this.webview.goBack(); } for (;;) { return super.onOptionsItemSelected(paramMenuItem); } } public class ChildBrowserClient extends WebViewClient { public ChildBrowserClient() {} public void onPageFinished(WebView paramWebView, String paramString) { super.onPageFinished(paramWebView, paramString); } public void onPageStarted(WebView paramWebView, String paramString, Bitmap paramBitmap) { super.onPageStarted(paramWebView, paramString, paramBitmap); } @SuppressLint({"InlinedApi", "NewApi"}) public boolean shouldOverrideUrlLoading(WebView paramWebView, String paramString) { boolean bool = true; String str1 = MimeTypeMap.getFileExtensionFromUrl(paramString); DownloadManager localDownloadManager = null; DownloadManager.Request localRequest = null; if (str1 != null) { String str2 = MimeTypeMap.getSingleton().getMimeTypeFromExtension(str1); if ((str2 != null) && ((str2.toLowerCase().contains("video")) || (str1.toLowerCase().contains("mov")) || (str1.toLowerCase().contains("mp3")) || (str1.toLowerCase().contains("3gp")))) { localDownloadManager = (DownloadManager)MainActivity.this.getSystemService("download"); localRequest = new DownloadManager.Request(Uri.parse(paramString)); } } try { File localFile1 = new File(Environment.getExternalStorageDirectory(), MainActivity.this.getFileName(paramString)); localFile2 = localFile1; } catch (UnsupportedEncodingException localUnsupportedEncodingException) { for (;;) { localUnsupportedEncodingException.printStackTrace(); File localFile2 = null; } } localRequest.setDescription("Downloading from YesJar Web"); localRequest.setNotificationVisibility(1); localRequest.setDestinationUri(Uri.fromFile(localFile2)); localDownloadManager.enqueue(localRequest); bool = false; if (bool) { paramWebView.loadUrl(paramString); } Log.v("blank", paramString.toString()); return bool; } } } 

在下面使用

setContentView(R.layout.activity_main);

代替

setContentView(activity_main);

要么

findViewById(R.id.yesjar_web)

代替

findViewById(yesjar_web)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM