Листы не смогли разрешить: Ljava / AWT / Desktop при настройке API - PullRequest
0 голосов
/ 29 января 2020

Я получаю сообщение об ошибке ниже, когда я пытаюсь настроить листы на android studio

2020-01-30 01:38:42.294 6556-6556/com.example.climate I/System.out:   [Insert link here to click that allows permission for sheets]
2020-01-30 01:38:42.362 6556-6556/com.example.climate D/AndroidRuntime: Shutting down VM
2020-01-30 01:38:42.363 6556-6556/com.example.climate E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.example.climate, PID: 6556
    java.lang.NoClassDefFoundError: Failed resolution of: Ljava/awt/Desktop;
        at com.google.api.client.extensions.java6.auth.oauth2.AuthorizationCodeInstalledApp.browse(AuthorizationCodeInstalledApp.java:174)
        at com.google.api.client.extensions.java6.auth.oauth2.AuthorizationCodeInstalledApp$DefaultBrowser.browse(AuthorizationCodeInstalledApp.java:69)
        at com.google.api.client.extensions.java6.auth.oauth2.AuthorizationCodeInstalledApp.onAuthorization(AuthorizationCodeInstalledApp.java:158)
        at com.google.api.client.extensions.java6.auth.oauth2.AuthorizationCodeInstalledApp.authorize(AuthorizationCodeInstalledApp.java:124)
        at com.example.climate.MapsActivity.getCredentials(MapsActivity.java:138)
        at com.example.climate.MapsActivity.changeInfo(MapsActivity.java:278)
        at com.example.climate.MapsActivity$2.onMapClick(MapsActivity.java:454)
        at com.google.android.gms.maps.zzy.onMapClick(Unknown Source:2)
        at com.google.android.gms.maps.internal.zzak.dispatchTransaction(Unknown Source:5)
        at com.google.android.gms.internal.maps.zzb.onTransact(Unknown Source:12)
        at android.os.Binder.transact(Binder.java:667)
        at cj.b(:com.google.android.gms.dynamite_mapsdynamite@19831068@19.8.31 (100700-0):14)
        at com.google.android.gms.maps.internal.au.a(:com.google.android.gms.dynamite_mapsdynamite@19831068@19.8.31 (100700-0):4)
        at com.google.maps.api.android.lib6.gmm6.vector.ai.b(:com.google.android.gms.dynamite_mapsdynamite@19831068@19.8.31 (100700-0):91)
        at com.google.maps.api.android.lib6.gmm6.vector.dc.onSingleTapConfirmed(:com.google.android.gms.dynamite_mapsdynamite@19831068@19.8.31 (100700-0):90)
        at com.google.maps.api.android.lib6.impl.gesture.b.onSingleTapConfirmed(:com.google.android.gms.dynamite_mapsdynamite@19831068@19.8.31 (100700-0):18)
        at com.google.maps.api.android.lib6.impl.gesture.c.handleMessage(:com.google.android.gms.dynamite_mapsdynamite@19831068@19.8.31 (100700-0):6)
        at android.os.Handler.dispatchMessage(Handler.java:106)
        at android.os.Looper.loop(Looper.java:193)
        at android.app.ActivityThread.main(ActivityThread.java:6669)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)
     Caused by: java.lang.ClassNotFoundException: Didn't find class "java.awt.Desktop" on path: DexPathList[[zip file "/system/framework/org.apache.http.legacy.boot.jar", zip file "/data/app/com.example.climate-_fmw7ixKtigdos-FaoZlxA==/base.apk"],nativeLibraryDirectories=[/data/app/com.example.climate-_fmw7ixKtigdos-FaoZlxA==/lib/x86, /system/lib]]
        at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:134)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:379)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:312)
        at com.google.api.client.extensions.java6.auth.oauth2.AuthorizationCodeInstalledApp.browse(AuthorizationCodeInstalledApp.java:174) 
        at com.google.api.client.extensions.java6.auth.oauth2.AuthorizationCodeInstalledApp$DefaultBrowser.browse(AuthorizationCodeInstalledApp.java:69) 
        at com.google.api.client.extensions.java6.auth.oauth2.AuthorizationCodeInstalledApp.onAuthorization(AuthorizationCodeInstalledApp.java:158) 
        at com.google.api.client.extensions.java6.auth.oauth2.AuthorizationCodeInstalledApp.authorize(AuthorizationCodeInstalledApp.java:124) 
        at com.example.climate.MapsActivity.getCredentials(MapsActivity.java:138) 
        at com.example.climate.MapsActivity.changeInfo(MapsActivity.java:278) 
        at com.example.climate.MapsActivity$2.onMapClick(MapsActivity.java:454) 
        at com.google.android.gms.maps.zzy.onMapClick(Unknown Source:2) 
        at com.google.android.gms.maps.internal.zzak.dispatchTransaction(Unknown Source:5) 
        at com.google.android.gms.internal.maps.zzb.onTransact(Unknown Source:12) 
        at android.os.Binder.transact(Binder.java:667) 
        at cj.b(:com.google.android.gms.dynamite_mapsdynamite@19831068@19.8.31 (100700-0):14) 
        at com.google.android.gms.maps.internal.au.a(:com.google.android.gms.dynamite_mapsdynamite@19831068@19.8.31 (100700-0):4) 
        at com.google.maps.api.android.lib6.gmm6.vector.ai.b(:com.google.android.gms.dynamite_mapsdynamite@19831068@19.8.31 (100700-0):91) 
        at com.google.maps.api.android.lib6.gmm6.vector.dc.onSingleTapConfirmed(:com.google.android.gms.dynamite_mapsdynamite@19831068@19.8.31 (100700-0):90) 
        at com.google.maps.api.android.lib6.impl.gesture.b.onSingleTapConfirmed(:com.google.android.gms.dynamite_mapsdynamite@19831068@19.8.31 (100700-0):18) 
        at com.google.maps.api.android.lib6.impl.gesture.c.handleMessage(:com.google.android.gms.dynamite_mapsdynamite@19831068@19.8.31 (100700-0):6) 
        at android.os.Handler.dispatchMessage(Handler.java:106) 
        at android.os.Looper.loop(Looper.java:193) 
        at android.app.ActivityThread.main(ActivityThread.java:6669) 
        at java.lang.reflect.Method.invoke(Native Method) 
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493) 
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858) 
2020-01-30 01:38:42.375 6556-6556/com.example.climate I/Process: Sending signal. PID: 6556 SIG: 9

Код, который использовался для вызова этого, показан ниже, что я делаю неправильно?

 private static Credential getCredentials(final NetHttpTransport HTTP_TRANSPORT, InputStream in) throws IOException {
        // Load client secrets.
        if (in == null) {
            throw new FileNotFoundException("Resource not found");
        }
        GoogleClientSecrets clientSecrets = GoogleClientSecrets.load(JSON_FACTORY, new InputStreamReader(in));
        File tokenFolder = new File(Environment.getExternalStorageDirectory() +
                File.separator + TOKENS_DIRECTORY_PATH);
        if (!tokenFolder.exists()) {
            tokenFolder.mkdirs();
        }

        // Build flow and trigger user authorization request.
        GoogleAuthorizationCodeFlow flow = new GoogleAuthorizationCodeFlow.Builder(
                HTTP_TRANSPORT, JSON_FACTORY, clientSecrets, SCOPES)
                .setDataStoreFactory(new FileDataStoreFactory(tokenFolder))
                .setAccessType("offline")
                .build();
        LocalServerReceiver receiver = new LocalServerReceiver.Builder().setPort(8080).build();
        return new AuthorizationCodeInstalledApp(flow, receiver).authorize("user");
    } 
With the code calling credentials here
try {
            // Build a new authorized API client service.
            final NetHttpTransport HTTP_TRANSPORT = new com.google.api.client.http.javanet.NetHttpTransport();
            android.util.Log.i("made two", "test");
            final String spreadsheetId = "random spreadsheet ID here";
            final String range = "Class Data!A2:E";
            InputStream in = this.getAssets().open("credentials.json");
            android.util.Log.i("input stream", in.toString());
            Sheets service = new Sheets.Builder(HTTP_TRANSPORT, JSON_FACTORY, getCredentials(HTTP_TRANSPORT,in))
                    .setApplicationName(APPLICATION_NAME)
                    .build();
            ValueRange response = service.spreadsheets().values()
                    .get(spreadsheetId, range)
                    .execute();
            List<List<Object>> values = response.getValues();
            if (values == null || values.isEmpty()) {
                System.out.println("No data found.");
            } else {
                System.out.println("Name, Major");
                for (List row : values) {
                    // Print columns A and E, which correspond to indices 0 and 4.
                    System.out.printf("%s, %s\n", row.get(0), row.get(4));
                }
            }
        } catch (IOException e) {
            android.util.Log.i("test",e.toString());
        }


Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...