teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

2

追記

2020/07/01 08:51

投稿

keicha_hrs
keicha_hrs

スコア6768

answer CHANGED
@@ -3,4 +3,16 @@
3
3
  下記資料を参考にしてres/xml/network_security_config.xmlを作成し、AndroidManifest.xmlへの記述を追加することで回避できるのではないかと思います。
4
4
 
5
5
  [ネットワーク セキュリティ構成 | Android Developers](https://developer.android.com/training/articles/security-config)
6
- [Android 9(Pie)でHTTP通信を有効にする | Qiita](https://qiita.com/b_a_a_d_o/items/afa0d83bbffdb5d4f6be)
6
+ [Android 9(Pie)でHTTP通信を有効にする | Qiita](https://qiita.com/b_a_a_d_o/items/afa0d83bbffdb5d4f6be)
7
+
8
+ ---
9
+
10
+ Android 7.0の端末なら上記の問題は影響しないでしょう。それならば、AndroidManifest.xmlに
11
+
12
+ ```xml
13
+ <uses-permission android:name="android.permission.INTERNET" />
14
+ ```
15
+
16
+ の記述はありますか?それがない場合も、同様にurlConnectionへの代入が行われずにfinallyブロックが走るでしょう。
17
+
18
+ 後は、ネットワーク処理がUIスレッド上で走っている場合もやはり代入が行われず例外が飛ぶので、同じ結果になると思います。別スレッドで走るように実装されているでしょうか。

1

typo

2020/07/01 08:51

投稿

keicha_hrs
keicha_hrs

スコア6768

answer CHANGED
@@ -1,4 +1,4 @@
1
- 動かそうとしているAndroidのバージョンが9.0以上であるとしたら、デフォルトでHTTPの通信が制限されているので、そのための対処をしないと`url.openConnection()`の段階で例外が飛ぶと思われます。そうするとurlConnectionへの代入が行われないままfinallyの`urlConnection.disconnect()`が実行されようとするので、質問にあるエラーが起きているのではないでしょうか。
1
+ 動かそうとしているAndroidのバージョンが9.0以上であるとしたら、デフォルトでHTTPの通信が制限されているので、そのための対処をしないと`url.openConnection()`の段階で例外が飛ぶと思われます。そうするとurlConnectionへの代入が行われないままfinallyの`urlConnection.disconnect()`が実行されようとするので、質問にあるエラーが起きているのではないでしょうか。
2
2
 
3
3
  下記資料を参考にしてres/xml/network_security_config.xmlを作成し、AndroidManifest.xmlへの記述を追加することで回避できるのではないかと思います。
4
4