Exception Valueの解決方法【2025年最新版】
エラーの概要・症状
本記事では、Exception Valueというエラーメッセージが表示される際の対処法について紹介します。このエラーは、主にAndroidアプリケーションやASP.NET MVCアプリケーションにおいて発生することがあります。特に、HTTP通信に関する設定ミスや不適切なリクエストデータが原因であることが多いです。エラーが発生すると、アプリケーションは正常に動作せず、ユーザーはアプリを利用できなくなります。これにより、アプリの信頼性が低下し、ユーザーからの評価にも影響を及ぼします。
エラーが表示される状況
- AndroidアプリでHTTP通信を行う際に、
Cleartext HTTP traffic not permittedのエラーが発生する。 - ASP.NET MVCアプリでフォームデータが不正と見なされる場合、
A potentially dangerous Request.Form value was detected from the clientのエラーが表示される。
具体的な症状と影響
- Androidの場合、アプリがWebViewを利用している際に、HTTPリクエストがブロックされ、ページが読み込まれない。
- ASP.NET MVCの場合、特定の入力フィールドから不正なデータが送信されると、アプリがエラーを返し、フォームが送信できなくなる。
ユーザーの困りごと
このエラーが発生すると、ユーザーはアプリを使えなくなり、特に重要な操作が完了できない場合には大きな不満を感じます。特にビジネス用途で使用されるアプリの場合、迅速な解決が求められます。
このエラーが発生する原因
Exception Valueのエラーが発生する原因は主に以下の3つです。
1. Cleartext HTTPトラフィックの禁止
Android 9以上では、デフォルトでHTTP(クリアテキスト)トラフィックが禁止されています。これにより、HTTP通信を行おうとするとエラーが発生します。特に、WebViewを使用してHTTPリクエストを行う場合、この設定が影響を及ぼします。
2. 不正なリクエストデータ
ASP.NET MVCアプリケーションでは、ユーザーが送信するデータにおいて特定の文字(例:<や>)が含まれると、セキュリティ上の理由からリクエストが拒否されます。このため、ユーザーは正しいデータを入力しているにもかかわらずエラーが発生することがあります。
3. ネットワークセキュリティ設定の不足
Androidアプリで正しくネットワークセキュリティ設定を行わないと、HTTPリクエストが通過できず、エラーが発生します。特に、network_security_config.xmlファイルの設定が不適切な場合、アプリは外部リソースにアクセスできません。
解決方法1(最も効果的)
手順1-1: AndroidManifest.xmlの修正
以下の手順で、AndroidアプリのAndroidManifest.xmlを修正します。
AndroidManifest.xmlを開く。-
タグ内に以下の属性を追加します。
<application
android:usesCleartextTraffic="true"
...>
network_security_config.xmlファイルを作成し、以下の内容を記述します。
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
<domain-config cleartextTrafficPermitted="true">
<domain includeSubdomains="true">api.example.com</domain>
</domain-config>
</network-security-config>
手順1-2: ネットワークセキュリティ設定の確認
-
res/xml/ディレクトリ内にnetwork_security_config.xmlを保存します。 -
タグ内に、次のようにandroid:networkSecurityConfigを指定します。
<application
android:networkSecurityConfig="@xml/network_security_config"
...>
手順1-3: 注意点とトラブルシューティング
- 必ず、APIのURLがHTTPSであることを確認してください。
- 設定を変更した後は、アプリを再ビルドして実行してください。エミュレーターやデバイスのキャッシュが影響することがあるため、アプリのデータをクリアすることもおすすめです。
解決方法2(代替手段)
もし上記の方法で解決できない場合、以下の手順を試してみてください。
base-configを使用した設定を行います。network_security_config.xmlを以下のように修正します。
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
<base-config cleartextTrafficPermitted="true">
<trust-anchors>
<certificates src="system" />
</trust-anchors>
</base-config>
</network-security-config>
AndroidManifest.xml内のタグに、以下のように指定します。
<application
android:networkSecurityConfig="@xml/network_security_config"
...>
この方法で、クリアテキストトラフィックを許可し、アプリがHTTP通信を行えるようにします。
解決方法3(上級者向け)
上級者向けには、以下のコマンドラインを使用したアプローチも考えられます。
- Android Studioでプロジェクトを開きます。
-
gradle.propertiesファイルを開き、以下の設定を追加します。
android.useAndroidX=true
android.enableJetifier=true
- プロジェクトをクリーンし、再ビルドします。これにより、依存関係の問題が解決されることがあります。
エラーの予防方法
このエラーを未然に防ぐためには、以下のような予防策が有効です。
- 定期的なコードレビュー: アプリのソースコードを定期的にレビューし、HTTP通信の設定が正しいか確認します。
-
セキュリティ設定の確認: 新しいAndroidバージョンがリリースされるたびに、セキュリティ設定が適切に行われているか確認します。
-
ユーザー入力のバリデーション: ASP.NET MVCアプリでは、ユーザーからの入力データを適切にバリデーションし、危険な文字列をフィルターすることが重要です。
関連するエラーと対処法
同様のエラーとしては、以下のものがあります。
HTTP ERROR 403: アプリがリソースにアクセスできない場合に発生します。サーバーの設定を確認し、アクセス権限を適切に設定することで対処可能です。Invalid JSON format: 正しくないJSONデータを送信した場合に発生します。データの構造が正しいか確認し、適切な形式で送信することが必要です。
まとめ
Exception Valueエラーは、主にHTTP通信に関する設定ミスや不正なリクエストデータによって引き起こされます。ここで紹介した解決方法を参考に、エラーを迅速に解決し、アプリの信頼性を保ちましょう。特に、定期的なコードレビューやセキュリティ設定の確認が重要です。次のステップとして、アプリのユーザーからのフィードバックを受け取り、さらなる改善を行うことをお勧めします。

コメント