无法运行getYouTubeService()

时间:2018-05-23 15:48:16

标签: android youtube youtube-api youtube-data-api

我正在尝试创建一个Android应用程序,它将使用youtube数据api v3并通过输入作为youtube频道的名称来给出结果。我已经下载了youtubeapi jar文件并将其复制到lib文件夹中。另外,我已将此作为依赖项包含在build.gradle中。 但我仍然无法运行getYouTubeService()函数/方法。我没有收到错误。你能帮忙吗? mainActivity的代码如下所示。

package com.example.loveb.youtubestats;    
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import com.google.api.services.youtube.YouTubeScopes;
import com.google.api.services.youtube.model.*;
import com.google.api.services.youtube.YouTube;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.Collection;
import java.util.HashMap;
import java.util.List;
import java.util.HashMap;

public class MainActivity extends AppCompatActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        YouTube youtube = getYouTubeService();
        try {
            HashMap<String, String> parameters = new HashMap<>();
            parameters.put("part", "snippet,contentDetails,statistics");
            parameters.put("forUsername", "Aman Dhatterwal");
            YouTube.Channels.List channelsListByUsernameRequest = youtube.channels().list(parameters.get("part").toString());
            if (parameters.containsKey("forUsername") && parameters.get("forUsername") != "") {
                channelsListByUsernameRequest.setForUsername(parameters.get("forUsername").toString());
            }
            ChannelListResponse response = channelsListByUsernameRequest.execute();
            System.out.println(response);
        }
    }
}

构建gradle文件的代码如下所示。

apply plugin: 'com.android.application'

android {
    compileSdkVersion 26
    defaultConfig {
        applicationId "com.example.loveb.youtubestats"
        minSdkVersion 15
        targetSdkVersion 26
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    implementation fileTree(include: ['*.jar'], dir: 'libs')
    implementation 'com.android.support:appcompat-v7:26.1.0'
    implementation 'com.android.support.constraint:constraint-layout:1.1.0'
    testImplementation 'junit:junit:4.12'
    compile 'com.google.apis:google-api-services-youtube:v3-rev181-1.22.0'
    androidTestImplementation 'com.android.support.test:runner:1.0.2'
    androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
    implementation files('libs/YouTubeAndroidPlayerApi.jar')
}

1 个答案:

答案 0 :(得分:0)

YouTube API库没有 getYouTubeService()方法。

您可以通过声明以下功能来获得YouTube服务:

public static YouTube getYouTubeService() throws IOException {
    return new YouTube.Builder(HTTP_TRANSPORT, JSON_FACTORY, credential)
            .setApplicationName(APPLICATION_NAME)
            .build();
}