OK、私は最も簡単なアンドロイドスタジオアプリケーションを持っています。私はAndroidやJavaの開発者ではありません。Android;ランタイム中に「アプリケーションが予期せず停止しました」というメッセージが表示される
私はオンラインで検索しましたが、私はマニフェストの活動を宣言するための古い投稿を取得しました。
私は3つのアクティビティを持っています。
- スプラッシュスクリーンは素晴らしいです。
- WEMProject、素晴らしい実行します。
- NoNetworkConnections、実行時に "アプリケーションが予期せず停止しました"
私のWEMProjectでは、ネットワーク接続がある場合はWebviewを読み込みます。そうでない場合は、「ネットワークがありません」という画面が表示されます。
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (haveNetworkConnection()) {
setContentView(R.layout.activity_wemproject);
myWebView = (WebView) findViewById(R.id.WebView);
myWebView.getSettings().setLoadsImagesAutomatically(true);
myWebView.getSettings().setJavaScriptEnabled(false);
myWebView.setScrollBarStyle(View.SCROLLBARS_INSIDE_OVERLAY);
myWebView.loadUrl("https://my.wem.io");
} else {
Intent intent = new Intent(WEMProject.this, NoNetworkConnection.class);
startActivity(intent);
}
}
これは素晴らしい作品、ネットワークのチェックが正常に動作しますが、ないネットワークが存在しない場合:
Intent intent = new Intent(this, NoNetworkConnection.class);
startActivity(intent);
一部はなぜ..エラーの原因は?
活動は次のとおりです。
public class NoNetworkConnection extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_no_network_connection);
} }
私は私のAndroidManifest.xml
<activity
android:name=".NoNetworkConnection"
android:parentActivityName=".WEMProject"
android:configChanges="orientation|keyboardHidden|screenSize"
android:label="@string/title_activity_no_network_connection"
android:theme="@style/FullscreenTheme">
</activity>
アンドロイドログのデバッグ一部の活動を宣言した:要求されたよう
04-06 14:12:39.668 15630-15630/io.wem.my.mywem E/AndroidRuntime: FATAL EXCEPTION: main
Process: io.wem.my.mywem, PID: 15630
java.lang.RuntimeException: Unable to start activity ComponentInfo{io.wem.my.mywem/io.wem.my.mywem.WEMProject}: java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String android.net.NetworkInfo.getTypeName()' on a null object reference
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2665)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2726)
at android.app.ActivityThread.-wrap12(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1477)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6119)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776)
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String android.net.NetworkInfo.getTypeName()' on a null object reference
at io.wem.my.mywem.WEMProject.haveNetworkConnection(WEMProject.java:33)
at io.wem.my.mywem.WEMProject.onCreate(WEMProject.java:61)
at android.app.Activity.performCreate(Activity.java:6679)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1118)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2618)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2726)
at android.app.ActivityThread.-wrap12(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1477)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6119)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776)
haveNetworkConnection()メソッド:
private boolean haveNetworkConnection() {
boolean haveConnectedWifi = false;
boolean haveConnectedMobile = false;
ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo netInfo = cm.getActiveNetworkInfo();
if (netInfo != null) {
if (netInfo.getTypeName().equalsIgnoreCase("WIFI"))
if (netInfo.isConnected())
haveConnectedWifi = true;
if (netInfo.getTypeName().equalsIgnoreCase("MOBILE"))
if (netInfo.isConnected())
haveConnectedMobile = true;
}
return haveConnectedWifi || haveConnectedMobile;
}
解決済み:netInfoがnullであることを確認できませんでした。hasNetworkConnectionのコードスニペットを作業用バージョンに変更しました。
あなたはログを表示することができますか? – muilpp
_ "何が足りないのですか?" _ [logcatのエラーメッセージ](http://stackoverflow.com/questions/23353173/unfortunately-myapp-has-stopped-how-can-i-solve-this#23353174 ) –
元の投稿に追加されました。私の質問を見てくれてありがとう! – schilpr