2016-03-26 10 views
-1

WebViewクライアントの実装後、私のアプリケーションはアプリケーションを実行した後「残念なことに」My Appが停止しました。 あなたは私はすでに、インターネットのアクセス権私のアプリケーションは引き続き「残念なことに」アプリケーションを実行した後に私のアプリケーションが停止しました

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); 

} 

を実装しているので、誰かが私のマニフェストまたは主な活動と間違っているものを私に教えてください可能性が見ることができるようにこれは私のmaniefest

<?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> 

です。 私のアプリにWebViewクライアントを実装してから、アプリ内のリンクを開く処理をする前に実行していました。ありがとう!

+2

あなたのlogcatを追加してください。 – KDeogharkar

+0

なぜあなたはfindviewを二回貼り付けエラーログを記録してプライベートWebview ....を削除するのですか? –

+0

有用な回答を回答としてマークしてください。 –

答えて

0

削除ライン

public class MainActivity extends Activity 

あなたが何かを初期化したいときはいつでも、はあなたがsetContentView後にそれらを初期化することを確認した後

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

webViewに2回初期化しました。最初にpublic class MainActivity extends Activityの後に初期化したため、nullpointerExceptionというエラーが発生します。

+1

ありがとうございます!これは私のアプリが今完璧に動作しました! – Mike

+0

おめでとうございます。 –

+0

私のクラスがアプリケーションをクラッシュさせた後にプライベートメソッドを宣言する理由を説明してください。 – Mike

2

がオンにこのラインを置くsetContentView

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); 

}

1

を作成)(前のonCreateのWebViewのオブジェクトを作成します。

private WebView mWebView; 

setContentViewの後に初期化されたwebviewオブジェクト。 onCreateView(にこのラインを入れ

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

)あなたはこのラインで

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); 
} 
1

を次のようにそれをしなければならない範囲

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

のうち、findiviewと間違っています

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

作成すると、setContentビューを使用してビューを設定する前でもWebビューをインスタンス化しようとしているため、nullポインタ例外が発生します。削除してください。それが動作します。

関連する問題