将 YouTube Data API 添加到 Android Studio

所以,我目前正在空闲时间搞砸Android编程,我正在使用Android Studio作为我的首选。我目前正在尝试使用youtube api制作一个非常简单的应用程序。我的问题是我无法弄清楚如何将API实际放入我的应用程序中。我使用file>project结构将内容添加到我的应用程序中,但这本身不起作用。它不再对我大喊大叫语法错误,但当它编译它时会出错。

我对此进行了一些研究,发现我需要添加一些东西来构建.gradle或setset.gradle(或两者兼而有之),但我还没有找到一个关于确切操作的确切答案。到目前为止,我尝试过的所有方法都没有奏效。因此,如果有人可以向我解释我必须做什么,或者将我链接到一个解释该做什么的地方,那就太好了。

--编辑--

我现在很困惑。我开始了一个新项目。我添加了库,它仍然能够编译。然后我添加了导入,它抛出了关于它的错误。然后,我将这些添加到build.gradle中,它能够完美地编译。

compile fileTree(dir: 'libs/youtube', include: '*.jar')
compile fileTree(dir: 'libs/youtube/libs', include: '*.jar')

但是当我添加这个代码时,需要库

/** Global instance of the HTTP transport. */
private static final HttpTransport HTTP_TRANSPORT = new NetHttpTransport();

/** Global instance of the JSON factory. */
private static final JsonFactory JSON_FACTORY = new JacksonFactory();

/** Global instance of Youtube object to make all API requests. */
private static YouTube youtube;

语法很好,但它在编译时抛出了一个错误

 Gradle: Execution failed for task ':Apitest:dexDebug'.
> Failed to run command:

然后是大约100行文件位置

关于我做错了什么的任何想法?


答案 1

只需在 gradle 文件中添加此依赖项:

compile 'com.google.apis:google-api-services-youtube:v3-rev181-1.22.0'

并使用YouTube对象。

参考资料: https://developers.google.com/api-client-library/java/apis/youtube/v3


答案 2

步骤1:从 https://developers.google.com/youtube/android/player/downloads/ 下载YoutubeAndroidPlayerApi.jar

步骤2:将其粘贴到项目应用程序文件夹内的libs文件夹中

步骤3:将以下行添加到项目的应用程序文件夹中的build.gradle中:

compile files('libs/YouTubeAndroidPlayerApi.jar')

步骤 4:将以下导入添加到扩展和实现的活动YouTubeBaseActivityYouTubePlayer.OnInitializedListener

import com.google.android.youtube.player.YouTubeBaseActivity;
import com.google.android.youtube.player.YouTubeInitializationResult;
import com.google.android.youtube.player.YouTubePlayer;
import com.google.android.youtube.player.YouTubePlayerView;
import com.google.android.youtube.player.YouTubePlayer.Provider;

步骤5:内部方法:OnCreate

//Make sure you initialize youtube player

YouTubePlayerView youTubeView = (YouTubePlayerView) findViewById(R.id.youtube_view);

youTubeView.initialize(YoutubeAPIKey, this);

在Web模式下注册项目后,您将从Google控制台获得的位置,请不要选择Android等移动域或任何YouTubeAPIKey

步骤 6:重写接口中的方法,实现如下:

@Override
public void onInitializationFailure(Provider arg0,
        YouTubeInitializationResult error) {
    // TODO Auto-generated method stub
    Toast.makeText(this, "Oh no!      
    "+error.toString(),Toast.LENGTH_LONG).show();

}

@Override
public void onInitializationSuccess(Provider arg0, YouTubePlayer player,
        boolean arg2) {
    // TODO Auto-generated method stub
    player.loadVideo(VIDEO_ID);
}

其中VIDEO_ID是从对Youtube API的RESTful调用中获取的:“https://www.googleapis.com/youtube/v3/search”,在GET中传递合适的参数,如“q,relevanceLanguage,type,key”等。