web-dev-qa-db-ja.com

myserver.comへのクリアテキストHTTPトラフィックはAndroid N previewで許可されていません

昨日、Android Nプレビューの新しいアップグレードを取得しました。アップグレードして以来、アプリを起動できなくなりました。

Java.io.IOException: Cleartext HTTP traffic to myserver.com not permitted

マニフェストでusesCleartextTraffictrueに設定するか、network_security_config.xml

<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
    <domain-config cleartextTrafficPermitted="true">
        <domain includeSubdomains="true">myserver.com</domain>
    </domain-config>
</network-security-config>

どちらも機能しませんでした。そこで何が起こっているかについてのアイデアはありますか?

マニフェストでnetworkSecurityConfigを定義しようとすると、コンパイルエラーが発生します

Error:(35) No resource identifier found for attribute 'networkSecurityConfig' in package 'Android'

理由は本当にわかりません。ファイルはそこにあり、すべてがきれいに見えます。

見つかった this Android Googleからの課題追跡システム。彼らはnetwork_security_config定義のmeta-data。それでも同じ例外が発生します。

11
SimonSays

Android N Developer Preview 4では既知の問題があり、アプリが_ApplicationInfo.flags_を変更すると、アプリがクリアテキストトラフィックをブロックした場合でも、アプリからのクリアテキストトラフィックのブロックがトリガーされます。クリアテキストのトラフィックをブロックするようにリクエストします。修正は次のDeveloper Previewで行われるため、これはNetwork Security Configとは関係ありません。実際、カスタムNetwork Security Configを宣言する必要もないようです。

次のAndroid N Developer Previewまで待てない場合は、アプリが独自の_ApplicationInfo.flags_を変更する場所をアプリで確認してください。通常、これはgetApplicationInfo().flags &= ApplicationInfo.FLAG_DEBUGGABLEまたはgetApplicationInfo().flags = ApplicationInfo.FLAG_DEBUGGABLEこれらの使用法の修正は_(getApplicationInfo().flags & ApplicationInfo.FLAG_DEBUGGABLE)_です。

または、回避策として、アプリのライフサイクルのできるだけ早い段階でNetworkSecurityPolicy.isCleartextTrafficPermitted()を呼び出します。この回避策は、_ApplicationInfo.flags_を改ざんするコードの前に呼び出された場合に機能します。

14
Alex Klyubin
Android:usesCleartextTraffic="true"

マニフェストファイルのアプリケーションタグにこの行を入れます

8
Makvin

アプリケーションタグの1行だけを試してください

Android:usesCleartextTraffic = "true"

<?xml version="1.0" encoding="utf-8"?>
<manifest ...>
    <uses-permission Android:name="Android.permission.INTERNET" />
    <application
       ...
       Android:usesCleartextTraffic="true"
       ...>
    </application>
</manifest>
5
Sanjay Hadiya

XML res/xml/network_security_config.xmlを作成します

<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
    <base-config cleartextTrafficPermitted="true" />
</network-security-config>

AndroidManifest.xml内のタグアプリケーションでこのファイルを参照します。お気に入り:

Android:networkSecurityConfig="@xml/network_security_config"
1
babin raj