Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/jsf/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何通过Android应用程序创建谷歌物联网核心设备?_Android_Google Cloud Platform_Google Api Client_Networkonmainthread_Google Cloud Iot - Fatal编程技术网

如何通过Android应用程序创建谷歌物联网核心设备?

如何通过Android应用程序创建谷歌物联网核心设备?,android,google-cloud-platform,google-api-client,networkonmainthread,google-cloud-iot,Android,Google Cloud Platform,Google Api Client,Networkonmainthread,Google Cloud Iot,我正在将以下GCP物联网核心功能移植到Android Studio Gradle项目 createDeviceWithRs256 当我调用这个函数时,应用程序就会崩溃 GoogleCredential credential = GoogleCredential.getApplicationDefault().createScoped(CloudIotScopes.all()); 应用程序中是否有我没有GCP凭据 -- 这是我对gradle文件的设置 // My

我正在将以下GCP物联网核心功能移植到Android Studio Gradle项目

createDeviceWithRs256

当我调用这个函数时,应用程序就会崩溃

    GoogleCredential credential =
            GoogleCredential.getApplicationDefault().createScoped(CloudIotScopes.all());
应用程序中是否有我没有GCP凭据

--

这是我对gradle文件的设置

// My Platform is Android 7.0
defaultConfig {
    applicationId "com.example.myapplication"
    minSdkVersion 24
    targetSdkVersion 29
    versionCode 1
    versionName "1.0"
    testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}

packagingOptions {
    exclude 'META-INF/DEPENDENCIES'
}

dependencies {
    ...
    implementation 'com.google.api-client:google-api-client:1.30.8'
    implementation 'com.google.apis:google-api-services-cloudiot:v1-rev94-1.25.0'
    ...
}
错误日志为:

--------- beginning of crash
2020-02-20 15:13:52.964 15387-15387/com.example.myapplication E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.example.myapplication, PID: 15387
    java.lang.IllegalStateException: Could not execute method for android:onClick
        at androidx.appcompat.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:390)
        at android.view.View.performClick(View.java:6205)
        at android.widget.TextView.performClick(TextView.java:11103)
        at android.view.View$PerformClick.run(View.java:23653)
        at android.os.Handler.handleCallback(Handler.java:751)
        at android.os.Handler.dispatchMessage(Handler.java:95)
        at android.os.Looper.loop(Looper.java:154)
        at android.app.ActivityThread.main(ActivityThread.java:6682)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1520)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1410)
     Caused by: java.lang.reflect.InvocationTargetException
        at java.lang.reflect.Method.invoke(Native Method)
        at androidx.appcompat.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:385)
        at android.view.View.performClick(View.java:6205) 
        at android.widget.TextView.performClick(TextView.java:11103) 
        at android.view.View$PerformClick.run(View.java:23653) 
        at android.os.Handler.handleCallback(Handler.java:751) 
        at android.os.Handler.dispatchMessage(Handler.java:95) 
        at android.os.Looper.loop(Looper.java:154) 
        at android.app.ActivityThread.main(ActivityThread.java:6682) 
        at java.lang.reflect.Method.invoke(Native Method) 
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1520) 
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1410) 
     Caused by: android.os.NetworkOnMainThreadException
        at android.os.StrictMode$AndroidBlockGuardPolicy.onNetwork(StrictMode.java:1303)
        at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:333)
        at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:196)
        at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:178)
        at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:356)
        at java.net.Socket.connect(Socket.java:586)
        at com.android.okhttp.internal.Platform.connectSocket(Platform.java:113)
        at com.android.okhttp.Connection.connectSocket(Connection.java:1455)
        at com.android.okhttp.Connection.connect(Connection.java:1413)
        at com.android.okhttp.Connection.connectAndSetOwner(Connection.java:1707)
        at com.android.okhttp.OkHttpClient$1.connectAndSetOwner(OkHttpClient.java:133)
        at com.android.okhttp.internal.http.HttpEngine.connect(HttpEngine.java:466)
        at com.android.okhttp.internal.http.HttpEngine.sendRequest(HttpEngine.java:371)
        at com.android.okhttp.internal.huc.HttpURLConnectionImpl.execute(HttpURLConnectionImpl.java:503)
        at com.android.okhttp.internal.huc.HttpURLConnectionImpl.connect(HttpURLConnectionImpl.java:130)
        at com.google.api.client.http.javanet.NetHttpRequest.execute(NetHttpRequest.java:148)
        at com.google.api.client.http.javanet.NetHttpRequest.execute(NetHttpRequest.java:84)
        at com.google.api.client.http.HttpRequest.execute(HttpRequest.java:1012)
        at com.google.api.client.googleapis.auth.oauth2.OAuth2Utils.runningOnComputeEngine(OAuth2Utils.java:87)
        at com.google.api.client.googleapis.auth.oauth2.DefaultCredentialProvider.detectEnvironment(DefaultCredentialProvider.java:183)
        at com.google.api.client.googleapis.auth.oauth2.DefaultCredentialProvider.getDefaultCredentialUnsynchronized(DefaultCredentialProvider.java:110)
        at com.google.api.client.googleapis.auth.oauth2.DefaultCredentialProvider.getDefaultCredential(DefaultCredentialProvider.java:91)
        at com.google.api.client.googleapis.auth.oauth2.GoogleCredential.getApplicationDefault(GoogleCredential.java:217)
        at com.google.api.client.googleapis.auth.oauth2.GoogleCredential.getApplicationDefault(GoogleCredential.java:195)
        at com.example.myapplication.MainActivity.createDeviceWithRs256(MainActivity.java:980)
        at com.example.myapplication.MainActivity.register_button_on_click(MainActivity.java:1034)
        at java.lang.reflect.Method.invoke(Native Method) 
        at androidx.appcompat.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:385) 
        at android.view.View.performClick(View.java:6205) 
        at android.widget.TextView.performClick(TextView.java:11103) 
        at android.view.View$PerformClick.run(View.java:23653) 
        at android.os.Handler.handleCallback(Handler.java:751) 
        at android.os.Handler.dispatchMessage(Handler.java:95) 
        at android.os.Looper.loop(Looper.java:154) 
        at android.app.ActivityThread.main(ActivityThread.java:6682) 
        at java.lang.reflect.Method.invoke(Native Method) 
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1520) 
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1410) 

原因:android.os.NetworkOnMainThreadException

这表示网络呼叫

您正试图在主线程上创建此。尝试使用
AsyncTask
移动到另一个线程,因为主线程上不允许网络操作