我是Android新手。我正在尝试构建一个简单的Web视图浏览器android应用程序。这个应用程序对我很重要。但是应用程序没有打开并且崩溃。日志cat中有很多错误。如何解决这个错误。请任何程序员帮助我。谢谢
记录错误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;
}
}
}
答案 0 :(得分:0)
使用以下
setContentView(R.layout.activity_main);
而不是
setContentView(activity_main);
或强>
findViewById(R.id.yesjar_web)
而不是
findViewById(yesjar_web)