23

所以,我目前在空闲时间搞乱 android 编程,我使用 android studio 作为我的选择。我目前正在尝试使用 youtube api 制作一个非常简单的应用程序。我的问题是我无法弄清楚如何将 api 实际放入我的应用程序中。我已经使用文件>项目结构将这些东西添加到我的应用程序中,但这本身不起作用。它不再对我大喊语法错误,但是当它编译时出错。

我对此进行了一些研究,发现我需要向 build.gradle 或 settings.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 行文件位置

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

4

2 回答 2

42

只需在 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

于 2014-10-15T16:21:01.377 回答
17

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

第2步:将其粘贴到项目app文件夹内的libs文件夹中

第 3 步:将以下行添加到项目 app 文件夹中的 build.gradle 中:

compile files('libs/YouTubeAndroidPlayerApi.jar')

第 4 步:将以下导入添加到扩展YouTubeBaseActivity和实现的活动中YouTubePlayer.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);

YouTubeAPIKey以网络模式注册项目后,您将从谷歌控制台获得的位置,不要选择像 Android 或任何移动域

第 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 是从 RESTful 调用 Youtube API 获取的:“ https://www.googleapis.com/youtube/v3/search ”,并在 GET 中传递合适的参数,例如“q,relevanceLanguage,type,key”等。

于 2016-11-03T10:19:47.583 回答