2016-08-08 2 views
0
<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
package="com.example.neo.gson"> 

<uses-permission android:name="android.permission.INTERNET" /> 
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 

<application 
    android:allowBackup="true" 
    android:icon="@mipmap/ic_launcher" 
    android:label="@string/app_name" 
    android:supportsRtl="true" 
    android:theme="@style/AppTheme"> 
    <activity android:name=".MainActivity"> 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 

      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 
</application> 

</manifest> 

HttpURLConnection разбивает мое приложение, потому что разрешение Интернет не предоставляется, даже если я использую тег в файле манифестаAndroid <использование-разрешение> не запрашивает разрешение

It says no permissions requested

экстракт LogCat:

08-08 16:50:32.167 3625-3625/com.example.neo.gson E/AndroidRuntime: FATAL EXCEPTION: main 
                   Process: com.example.neo.gson, PID: 3625 
                   java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.neo.gson/com.example.neo.gson.MainActivity}: android.os.NetworkOnMainThreadException 
                    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2434) 
                    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2494) 
                    at android.app.ActivityThread.access$900(ActivityThread.java:157) 
                    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1356) 
                    at android.os.Handler.dispatchMessage(Handler.java:102) 
                    at android.os.Looper.loop(Looper.java:148) 
                    at android.app.ActivityThread.main(ActivityThread.java:5525) 
                    at java.lang.reflect.Method.invoke(Native Method) 
                    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:730) 
                    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:620) 
                   Caused by: android.os.NetworkOnMainThreadException 
                    at android.os.StrictMode$AndroidBlockGuardPolicy.onNetwork(StrictMode.java:1273) 
                    at java.net.InetAddress.lookupHostByName(InetAddress.java:436) 
                    at java.net.InetAddress.getAllByNameImpl(InetAddress.java:252) 
                    at java.net.InetAddress.getAllByName(InetAddress.java:215) 
                    at com.android.okhttp.internal.Network$1.resolveInetAddresses(Network.java:29) 
                    at com.android.okhttp.internal.http.RouteSelector.resetNextInetSocketAddress(RouteSelector.java:188) 
                    at com.android.okhttp.internal.http.RouteSelector.nextProxy(RouteSelector.java:157) 
                    at com.android.okhttp.internal.http.RouteSelector.next(RouteSelector.java:100) 
                    at com.android.okhttp.internal.http.HttpEngine.createNextConnection(HttpEngine.java:357) 
                    at com.android.okhttp.internal.http.HttpEngine.nextConnection(HttpEngine.java:340) 
                    at com.android.okhttp.internal.http.HttpEngine.connect(HttpEngine.java:330) 
                    at com.android.okhttp.internal.http.HttpEngine.sendRequest(HttpEngine.java:248) 
                    at com.android.okhttp.internal.huc.HttpURLConnectionImpl.execute(HttpURLConnectionImpl.java:433) 
                    at com.android.okhttp.internal.huc.HttpURLConnectionImpl.getResponse(HttpURLConnectionImpl.java:384) 
                    at com.android.okhttp.internal.huc.HttpURLConnectionImpl.getInputStream(HttpURLConnectionImpl.java:231) 
                    at com.android.okhttp.internal.huc.DelegatingHttpsURLConnection.getInputStream(DelegatingHttpsURLConnection.java:210) 
                    at com.android.okhttp.internal.huc.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.java) 
                    at com.example.neo.gson.MainActivity.onCreate(MainActivity.java:47) 
                    at android.app.Activity.performCreate(Activity.java:6272) 
                    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1107) 
                    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2387) 
                    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2494)  
                    at android.app.ActivityThread.access$900(ActivityThread.java:157)  
                    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1356)  
                    at android.os.Handler.dispatchMessage(Handler.java:102)  
                    at android.os.Looper.loop(Looper.java:148)  
                    at android.app.ActivityThread.main(ActivityThread.java:5525)  
                    at java.lang.reflect.Method.invoke(Native Method)  
                    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:730)  
                    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:620)  

не могли бы вы помочь?

Я использую Зефир и мой targetSdkVersion 23 Я называю HttpURLConnection внутри метода OnCreate

+0

Вы используете зефир? где вы называете свое httpurlconnection? –

+1

«HttpURLConnection разбивает мое приложение» - пожалуйста, отредактируйте свой вопрос и опубликуйте [mcve], включая код, который сбой, и полную трассировку стека Java из-за сбоя. «Он говорит, что никаких разрешений не запрашивается» - в списке перечислены «опасные» разрешения; ни один из ваших прав не имеет этого 'protectionLevel'. – CommonsWare

+0

Могу ли я спросить, какая версия Android является вашей целевой компиляционной версией для вашего проекта приложения? –

ответ

0

Проблема была решена благодаря @JoxTraex

Вы не можете выполнить любую сеть вызовов в основном потоке. Используйте AsyncTask для выполнения сетевого вызова.

0

Вы не можете выполнять сетевые вызовы в основном потоке. Используйте AsyncTask для выполнения сетевого вызова.