Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/191.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
无法使用教程将文件上载到Google Drive(Android上的Drive应用程序)_Android_Google Drive Realtime Api - Fatal编程技术网

无法使用教程将文件上载到Google Drive(Android上的Drive应用程序)

无法使用教程将文件上载到Google Drive(Android上的Drive应用程序),android,google-drive-realtime-api,Android,Google Drive Realtime Api,我正在尝试让以下教程正常工作:。在完成所有步骤并运行代码后,我出现以下错误:“我尝试了两次执行该项目,以查看是否遗漏了任何步骤,但两次都导致了相同的结果。下面是我的活动、清单文件和源文件 我按照说明通过下载添加了“驱动API”。我在Galaxy SIII上运行,它的目标是Android版本4.1.2。然而,我的项目被设置为使用“谷歌API安卓4.2.2”运行 以下是连接到internet和4G电话服务时出现的错误: 11-18 15:19:51.275: W/AbstractGoogleClie

我正在尝试让以下教程正常工作:。在完成所有步骤并运行代码后,我出现以下错误:“
我尝试了两次执行该项目,以查看是否遗漏了任何步骤,但两次都导致了相同的结果。下面是我的活动、清单文件和源文件

我按照说明通过下载添加了“驱动API”。我在Galaxy SIII上运行,它的目标是Android版本4.1.2。然而,我的项目被设置为使用“谷歌API安卓4.2.2”运行

以下是连接到internet和4G电话服务时出现的错误:

11-18 15:19:51.275: W/AbstractGoogleClient(3450): Application name is not set. Call Builder#setApplicationName.
11-18 15:19:51.946: W/IInputConnectionWrapper(3450): showStatusIcon on inactive InputConnection
11-18 15:20:02.367: E/ActivityThread(3450): Activity com.example.fileupload.MainActivity has leaked ServiceConnection com.google.android.gms.internal.by@41e4e5a8 that was originally bound here
11-18 15:20:02.367: E/ActivityThread(3450): android.app.ServiceConnectionLeaked: Activity com.example.fileupload.MainActivity has leaked ServiceConnection com.google.android.gms.internal.by@41e4e5a8 that was originally bound here
11-18 15:20:02.367: E/ActivityThread(3450):     at android.app.LoadedApk$ServiceDispatcher.<init>(LoadedApk.java:965)
11-18 15:20:02.367: E/ActivityThread(3450):     at android.app.LoadedApk.getServiceDispatcher(LoadedApk.java:859)
11-18 15:20:02.367: E/ActivityThread(3450):     at android.app.ContextImpl.bindService(ContextImpl.java:1308)
11-18 15:20:02.367: E/ActivityThread(3450):     at android.app.ContextImpl.bindService(ContextImpl.java:1300)
11-18 15:20:02.367: E/ActivityThread(3450):     at android.content.ContextWrapper.bindService(ContextWrapper.java:401)
11-18 15:20:02.367: E/ActivityThread(3450):     at com.google.android.gms.auth.GoogleAuthUtil.getToken(Unknown Source)
11-18 15:20:02.367: E/ActivityThread(3450):     at com.google.android.gms.auth.GoogleAuthUtil.getToken(Unknown Source)
11-18 15:20:02.367: E/ActivityThread(3450):     at com.google.api.client.googleapis.extensions.android.gms.auth.GoogleAccountCredential.getToken(GoogleAccountCredential.java:192)
11-18 15:20:02.367: E/ActivityThread(3450):     at com.google.api.client.googleapis.extensions.android.gms.auth.GoogleAccountCredential$RequestHandler.intercept(GoogleAccountCredential.java:217)
11-18 15:20:02.367: E/ActivityThread(3450):     at com.google.api.client.http.HttpRequest.execute(HttpRequest.java:836)
11-18 15:20:02.367: E/ActivityThread(3450):     at com.google.api.client.googleapis.media.MediaHttpUploader.executeCurrentRequest(MediaHttpUploader.java:456)
11-18 15:20:02.367: E/ActivityThread(3450):     at com.google.api.client.googleapis.media.MediaHttpUploader.executeCurrentRequestWithBackOffAndGZip(MediaHttpUploader.java:478)
11-18 15:20:02.367: E/ActivityThread(3450):     at com.google.api.client.googleapis.media.MediaHttpUploader.executeUploadInitiation(MediaHttpUploader.java:428)
11-18 15:20:02.367: E/ActivityThread(3450):     at com.google.api.client.googleapis.media.MediaHttpUploader.upload(MediaHttpUploader.java:326)
11-18 15:20:02.367: E/ActivityThread(3450):     at com.google.api.client.googleapis.services.AbstractGoogleClientRequest.executeUnparsed(AbstractGoogleClientRequest.java:420)
11-18 15:20:02.367: E/ActivityThread(3450):     at com.google.api.client.googleapis.services.AbstractGoogleClientRequest.executeUnparsed(AbstractGoogleClientRequest.java:345)
11-18 15:20:02.367: E/ActivityThread(3450):     at com.google.api.client.googleapis.services.AbstractGoogleClientRequest.execute(AbstractGoogleClientRequest.java:463)
11-18 15:20:02.367: E/ActivityThread(3450):     at com.example.fileupload.MainActivity$1.run(MainActivity.java:98)
11-18 15:20:02.367: E/ActivityThread(3450):     at java.lang.Thread.run(Thread.java:856)
11-18 15:20:02.377: I/Adreno200-EGLSUB(3450): <ConfigWindowMatch:2087>: Format RGBA_8888.
11-18 15:20:06.021: I/Adreno200-EGLSUB(3450): <ConfigWindowMatch:2087>: Format RGBA_8888.
11-18 15:20:16.782: I/Adreno200-EGLSUB(3450): <ConfigWindowMatch:2087>: Format RGBA_8888.
11-18 15:20:27.764: W/AbstractGoogleClient(3450): Application name is not set. Call Builder#setApplicationName.
11-18 15:20:27.844: W/AbstractGoogleClient(3450): Application name is not set. Call Builder#setApplicationName.
11-18 15:20:28.925: W/IInputConnectionWrapper(3450): showStatusIcon on inactive InputConnection
}

清单文件 {


}

布局文件 {



}

在日志中,第一行告诉您如何添加应用程序名称,如您在谷歌控制台为简单api访问密钥注册应用程序时提供的那样。 当由凭据对象提供时,我已按如下方式构造了驱动器对象:

public static Drive getDriveService(GoogleAccountCredential credential) 
{
    return 
            new Drive
                    .Builder(AndroidHttp.newCompatibleTransport(), new GsonFactory(), credential)
                    .setApplicationName("YourProjectName")
                    .build();
}

我希望这能解决你的问题

谢谢你的帮助。我想我还缺少其他的拼图。现在我得到了以下错误:(Lcom/google/android/gms/R$string;中的common\u google\u play\u services\u install\u title);。。。。和W/System.err(16349):“消息”:“访问未配置”…您需要在控制台中激活驱动器SDK和API,并且当您在控制台中创建项目时,您必须从同一台计算机上运行应用程序,因为它是IP锁定的(或者我假设是MAC锁定的)。驱动器SDK和API都变为一个,生成SHA密钥,我想知道我是否在代码中遗漏了什么。我不确定“com.google.api.client.googleapis.json.GoogleJsonResponseException:403禁止”要求我做什么来修复此错误。我是从同一台windows计算机上编译的。您是如何获得SHA1密钥的?您是从keytool生成的还是从Eclipse的->窗口选项卡->首选项->Android->构建中获得的。如果您遵循第二种方法,您将获得正确的SHA1密钥。另外,您是否将OAuth 2.0客户端ID正确地放在Android项目的清单中:您必须正确执行这两个步骤,然后清理您的项目并在Android Phone(API 8+)/Android Emulator(4.2.2或API 17)中运行该项目。我认为这将解决您的401访问未配置问题,这也是我在早期google drive开发阶段多次遇到的问题。
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.fileupload"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="15"
        android:targetSdkVersion="16" />

    <permission
        android:name="com.google.cloud.backend.android.permission.C2D_MESSAGE"
        android:protectionLevel="signature" />

    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="com.google.cloud.backend.android.permission.C2D_MESSAGE" />
    <uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
    <uses-permission android:name="android.permission.WAKE_LOCK" />
    <uses-permission android:name="android.permission.GET_ACCOUNTS" />
    <uses-permission android:name="android.permission.USE_CREDENTIALS" />
    <uses-permission android:name="android.permission.MANAGE_ACCOUNTS" />
    <uses-permission android:name="android.permission.CAMERA" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-feature android:name="android.hardware.camera" />


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

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
            <meta-data android:name="com.google.android.apps.drive.APP_ID" android:value="*****" />
            <intent-filter>
            <action android:name="com.google.android.apps.drive.DRIVE_OPEN" />
            <data android:mimeType="application/vnd.google-apps.drive-sdk.id=*****" />
            <data android:mimeType="image/png" />
            <data android:mimeType="image/jpeg" />
            <data android:mimeType="image/jpg" />
            </intent-filter>
        </activity>
    </application>

</manifest>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".MainActivity" >

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/hello_world" />

</RelativeLayout>
public static Drive getDriveService(GoogleAccountCredential credential) 
{
    return 
            new Drive
                    .Builder(AndroidHttp.newCompatibleTransport(), new GsonFactory(), credential)
                    .setApplicationName("YourProjectName")
                    .build();
}