【问题标题】:my application keeps receiving "Unfortunately "My App" has stopped" after Running the app运行应用程序后,我的应用程序不断收到“不幸的是,我的应用程序已停止”
【发布时间】:2016-03-26 05:42:56
【问题描述】:

在实施 WebView 客户端后,我的应用程序在运行应用程序后不断收到“不幸的是,“我的应用程序”已停止”。 这是我的清单

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="amapps.com.uhss" >
<uses-permission android:name="android.permission.INTERNET"/>
<application
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="UHS Sword And Shield"
    android:theme="@style/AppTheme" >
    <activity
        android:name=".MainActivity"
        android:label="UHS Sword and Shield" >
        android:hardwareAccelerated="false"

        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>

</application>

如你所见,我已经实现了互联网权限

import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;

public class MainActivity extends Activity {

private WebView mWebView = (WebView) findViewById(R.id.activity_main_webview);


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(amapps.com.uhss.R.layout.activity_main);
    WebView mWebView = (WebView) findViewById(R.id.activity_main_webview);
    mWebView.setWebViewClient(new WebViewClient());

    WebSettings webSettings = mWebView.getSettings();
    webSettings.setJavaScriptEnabled(false);
    mWebView.loadUrl("http://uhsswordandshield.com/");
    mWebView.getSettings().setSupportMultipleWindows(true);

}

那么有人可以告诉我我的清单或主要活动有什么问题吗? 在我将 WebView 客户端实施到我的应用程序中以处理我的应用程序中的打开链接之前,我的应用程序正在运行。谢谢!

【问题讨论】:

  • 为什么你做 findview 两次粘贴错误日志并删除私有 Webview ....?
  • 请将有用的答案标记为答案。
  • 哦,好吧,对不起,新堆栈

标签: java android android-studio webview webviewclient


【解决方案1】:

在 setContentView 之后的 create 中加入这一行

private WebView mWebView;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(amapps.com.uhss.R.layout.activity_main);
     mWebView = (WebView) findViewById(R.id.activity_main_webview);

}

【讨论】:

    【解决方案2】:

    在这一行

    private WebView mWebView = (WebView) findViewById(R.id.activity_main_webview);
    

    在 onCreate 之上,您甚至在使用 setContent 视图设置视图之前尝试实例化 Web 视图,因此您将收到空指针异常。请删除它。它会起作用的。

    【讨论】:

      【解决方案3】:

      在 onCreate() 之前创建 webview 的对象。

      private WebView mWebView;
      

      然后在 setContentView 之后初始化 webview 对象。

      mWebView = (WebView) findViewById(R.id.activity_main_webview);
      

      【讨论】:

        【解决方案4】:

        删除线

        private WebView mWebView = (WebView) findViewById(R.id.activity_main_webview); 
        

        之后

         public class MainActivity extends Activity
        

        当你想要初始化某些东西时,确保在setContentView之后初始化它们。 您的问题是您两次初始化了webView,第一次是在public class MainActivity extends Activity 之后初始化的,因此您将收到nullpointerException 错误。

        【讨论】:

        • 恭喜:)
        • 能否解释一下为什么在我的课后声明私有方法会导致应用程序崩溃
        • 谢谢!我是编码新手,只想了解我正在做的一切。非常感谢您的帮助!
        【解决方案5】:

        把这行放到 onCreateView() 你会出错,findiview 超出范围

        private WebView mWebView = (WebView) findViewById(R.id.activity_main_webview);
        

        您必须按照以下方式进行操作

        private WebView;
        
        @Override
        protected void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
        setContentView(amapps.com.uhss.R.layout.activity_main);
         mWebView = (WebView) findViewById(R.id.activity_main_webview);
        }
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2016-10-03
          • 2018-03-23
          • 2015-05-09
          • 2016-11-19
          相关资源
          最近更新 更多