2015-01-05 109 views
1

我通過Crashlytics收到此日誌:Crashlytics是否需要ACCESS_NETWORK_STATE?

java.lang.SecurityException: ConnectivityService: Neither user 10099 nor current process has android.permission.ACCESS_NETWORK_STATE. 
    at android.os.Parcel.readException(Parcel.java:1428) 
    at android.os.Parcel.readException(Parcel.java:1382) 
    at android.net.IConnectivityManager$Stub$Proxy.getActiveNetworkInfo(IConnectivityManager.java:737) 
    at android.net.ConnectivityManager.getActiveNetworkInfo(ConnectivityManager.java:566) 
    at android.webkit.TextSelectWindow.isNetworkAvailable(TextSelectWindow.java:903) 
    at android.webkit.TextSelectWindow.dictSelection(TextSelectWindow.java:475) 
    at android.webkit.TextSelectWindow.onClick(TextSelectWindow.java:365) 
    at android.view.View.performClick(View.java:4220) 
    at android.view.View$PerformClick.run(View.java:17510) 
    at android.os.Handler.handleCallback(Handler.java:800) 
    at android.os.Handler.dispatchMessage(Handler.java:100) 
    at android.os.Looper.loop(Looper.java:194) 
    at android.app.ActivityThread.main(ActivityThread.java:5455) 
    at java.lang.reflect.Method.invokeNative(Method.java) 
    at java.lang.reflect.Method.invoke(Method.java:525) 
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:966) 
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:733) 
    at dalvik.system.NativeStart.main(NativeStart.java) 

顯然,一些需要ACCESS_NETWORK_STATE權限。該應用程序目前擁有的唯一權限是INTERNET,我只需要通過Crashlytics接收崩潰日誌。該應用程序本身從不需要任何Internet連接,並且無需任何權限即可完美工作。現在是否意味着Crashlytics需要ACCESS_NETWORK_STATE才能正常工作?奇怪的是,這是整個無故障月份之後的第一次也是唯一一次崩潰,Crashlytics總是在沒有許可的情況下工作。

該應用程序面向SDK 21並使用crashlytics:1.1.13和crashlytics-gradle:1.14.7。

+0

你提到你通過crashlytics日誌得到了這個,所以它不是來自你自己的設備?它看起來像進入了webkit,並且TextSelectWindow類嘗試通過檢查連接來訪問網絡狀態。我問這是否是您的手機,因爲我沒有在任何地方看到webkit中的TextSelectWindow。也許有人在rooted設備上運行android的修改版本? https://android.googlesource.com/platform/frameworks/base.git/+/master/core/java/android/webkit – DejanRistic

+0

@DejanRistic這是正確的,不是我的設備。 – 0101100101

回答

2

Crashlytics只需要INTERNET權限。 ConnectivityManager需要ACCESS_NETWORK_STATE權限

+0

我是這麼認爲的,但是當我沒有通過Internet訪問任何東西時,可能會使用ConnectivityManager?我只使用WebViews來顯示本地HTML內容,如下所示:* webView.getSettings()。setDefaultTextEncodingName(HTTP.UTF_8); webView.getSettings()。setCacheMode(WebSettings.LOAD_NO_CACHE); webView.loadUrl(「file:/// android_asset /」+ name +「.html」); *雖然這次單次崩潰是微不足道的,但我仍然認爲Android應用程序可能會因沒有ACCESS_NETWORK_STATE而崩潰它是100%離線。 – 0101100101

+0

我相信ConnectivityManger的getActiveNetworkInfo和isNetworkAvailable方法需要該權限。我看到那些在你的崩潰日誌中被調用。 – joelreeves

+0

Android可能會從任何應用程序中調用這些以獲得樂趣?我從來沒有做過任何網絡工作,也沒有爲此使用過任何圖書館。我使用的唯一庫是Crashlytics和Daimajia的Android視圖動畫。 – 0101100101