当前位置: 首页 > 知识库问答 >
问题:

Android未请求权限

楚方伟
2023-03-14
<?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使我的应用程序崩溃,因为即使我在清单文件中使用标记,也没有授予internet权限

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) 

共有1个答案

公西英叡
2023-03-14

多亏@joxtraex解决了问题

不能在主线程上执行任何网络调用。使用AsyncTask执行网络调用。

 类似资料:
  • 我正在尝试登录基于cloudflare服务器的网站。我使用cloudserver绕过了登录问题,但我的下一个停止点是当我试图发送get请求以访问一些登录后令牌时。 我的代码: 这返回401作为答案: 它的标题是 好的,我首先试着给一个auth。这样地 我再次得到相同的错误,401,但这次响应的头确实有一个www身份验证,我应该质询 根据我所读到的内容,它是基本的意味着我必须在我的头文件中添加一个像

  • 我一直在尝试实现运行时权限。下面是它的代码片段: RunTimePermissionsUtil。JAVA 在一个名为AddFileActivity的活动中,我在一个点击事件中实现了这个监听器,其代码如下: 所以,我所有的代码都会执行,它会进入onNeed权限()代码,其中,它会进入 但是,令人惊讶的是,在此之后,没有任何对话框要求获得摄像头的运行时权限,相反,对话框关闭并再次显示活动。 有没有人能

  • 我尝试使用angular2通过Oauth2身份验证访问我的Spring Boot应用程序。当我用基本身份验证(包括用户名和密码)向“oauth/token”发送post请求以获取token(在postman中可以正常工作)时,我得到了一个401未经授权。我知道我的浏览器用OPTIONS方法发送飞行前请求,我已经实现了我的安全配置,因此它应该忽略并允许OPTIONS请求,但它不起作用。 以下是我的安

  • 我再一次需要你的帮助堆叠天花! 我一直在开发SDK,现在需要验证用户是否授予了位置或文件写入等权限。 验证是可以的,但是我想如果需要的话,我应该请求许可。问题是,我绝对不能访问任何活动。我可以使用appContext来检查权限,但是我不能像这样监听onRequest estPermissionsResult。 有没有一种聪明的方法可以向我这边请求许可,或者我应该让使用我的SDK的开发人员及时请求许

  • 问题内容: 嗨,我正在更新我的应用程序贾夫纳神庙。使其可以支持Android M设备(v 6.0及更高版本)。 有没有一种方法可以一次请求多个权限。例如:我想获得同时读取手机状态和位置信息的权限。 通过这种方式,我可以一一请求权限。但是我想在应用程序启动时立即放下两个权限。 请给我一些建议。Tnx。 问题答案: 有没有办法我可以一次请求多个权限 在您要传递给的许可中放置多个权限。 例如,在这个示例

  • 首先,我知道这是一个重复的问题,但我已经看过了其他类似问题的答案,没有找到成功的解决方案。 我已经开发了一款应用程序,可以在我的测试设备上完美运行,这是一款运行Android L(5.0.1)的三星S4。不过,我希望这款应用程序也能在较新版本的Android上运行。 我知道Android M的请求权限已更改,因此必须在运行时请求权限,但当我尝试实现此功能时,对话框从未出现,因此从未请求所需的权限。