Java 创建YouTubePlayerView时出错

Java 创建YouTubePlayerView时出错,java,android,android-studio,android-fragments,youtube-api,Java,Android,Android Studio,Android Fragments,Youtube Api,我没有运气让youtube api在android上运行。我正在尝试获得最低限度的工作-只需通过公共访问(无oauth)播放视频。我有一个来自谷歌的密钥,我在模拟器上安装了youtube应用程序。我很有信心这是正确的,因为我从youtube api示例代码创建了一个新项目,它工作得非常完美 从我的项目运行时,尽管我得到: E/YouTubeAndroidPlayerAPI: Error creating YouTubePlayerView com.google.android.yo

我没有运气让youtube api在android上运行。我正在尝试获得最低限度的工作-只需通过公共访问(无oauth)播放视频。我有一个来自谷歌的密钥,我在模拟器上安装了youtube应用程序。我很有信心这是正确的,因为我从youtube api示例代码创建了一个新项目,它工作得非常完美

从我的项目运行时,尽管我得到:

E/YouTubeAndroidPlayerAPI: Error creating YouTubePlayerView
       com.google.android.youtube.player.internal.w$a: Exception thrown by invoked constructor in com.google.android.youtube.api.jar.client.RemoteEmbeddedPlayer
...
        Caused by: java.lang.reflect.InvocationTargetException
           at java.lang.reflect.Constructor.newInstance0(Native Method)
...

        Caused by: java.lang.IllegalArgumentException: The concrete class implementing IObjectWrapper must have exactly *one* declared private field for the wrapped object.  Preferably, this is an instance of the ObjectWrapper<T> class.
           at zst.a(SourceFile:76)

我在网上尝试了其他几个例子,它们都给出了相同的错误。欢迎提出任何建议

我想可能是我的梯度不同步了。我还删除了这一行:

compile project(':YouTubeAndroidPlayerApi')
不过,这仍然存在:

compile files('libs/YouTubeAndroidPlayerApi.jar')

我可以发誓我没有第一行就试过了,但我不能绝对肯定地说。

我想可能是我的渐变不同步了。我还删除了这一行:

compile project(':YouTubeAndroidPlayerApi')
不过,这仍然存在:

compile files('libs/YouTubeAndroidPlayerApi.jar')

我可以发誓我没有第一行就试过了,但我不能绝对肯定地说。

我在荣誉方面遇到了一些问题

我第一次以这种方式导入YouTubeAndroidPlayerApi.jar->右键单击project中的应用程序文件夹->新建->模块->导入.jar/.AAR包->选择YouTubeAndroidPlayerApi.jar->完成。然后打开项目结构,在依赖项选项卡中添加模块依赖项。此gradle完成并在build.gradle中编译项目(':YouTubeAndroidPlayerApi')。这样,创建YouTubePlayerView时出错

因此,我恢复了所有内容,并像下面这样导入了lib->将YouTubeAndroidPlayerApi.jar复制到/app/libs文件夹->打开项目结构,而不是模块依赖项,我选择了jar依赖项,并从libs文件夹中选择了YouTubeAndroidPlayerApi.jar。在那之后,gradle完成了,现在在build.gradle中编译文件('libs/YouTubeAndroidPlayerApi.jar'),一切正常

正如gradle中已经提到的,应该是
编译文件('libs/YouTubeAndroidPlayerApi.jar')
,而不是
编译项目(':YouTubeAndroidPlayerApi')


我希望这能对你有所帮助。

我在荣誉方面遇到了一些问题

我第一次以这种方式导入YouTubeAndroidPlayerApi.jar->右键单击project中的应用程序文件夹->新建->模块->导入.jar/.AAR包->选择YouTubeAndroidPlayerApi.jar->完成。然后打开项目结构,在依赖项选项卡中添加模块依赖项。此gradle完成并在build.gradle中编译项目(':YouTubeAndroidPlayerApi')。这样,创建YouTubePlayerView时出错

因此,我恢复了所有内容,并像下面这样导入了lib->将YouTubeAndroidPlayerApi.jar复制到/app/libs文件夹->打开项目结构,而不是模块依赖项,我选择了jar依赖项,并从libs文件夹中选择了YouTubeAndroidPlayerApi.jar。在那之后,gradle完成了,现在在build.gradle中编译文件('libs/YouTubeAndroidPlayerApi.jar'),一切正常

正如gradle中已经提到的,应该是
编译文件('libs/YouTubeAndroidPlayerApi.jar')
,而不是
编译项目(':YouTubeAndroidPlayerApi')


我希望这能对您有所帮助。

我确实看到示例代码没有使用任何compat*库,而我的应用程序使用。有人听说过youtube api和compat*是否存在漏洞吗?经过一周的挫折,我的问题消失了。我开始删除compat*的所有内容,认为这是一个糟糕的想法,取消了我的更改,一切都正常。我确实看到示例代码没有使用任何compat*库,而我的应用程序使用。有人听说过youtube api和compat*是否存在漏洞吗?经过一周的挫折,我的问题消失了。我开始删除compat*中的所有内容,认为这是一个糟糕的想法,取消了我的更改,世界上一切正常。