android – YouTubePlayer与AppCompat v7库一起使用

android – YouTubePlayer与AppCompat v7库一起使用,第1张

概述我开发了一款使用YouTube android API在应用内播放特定视频的应用.那时我已经使用了目标API 19,并且还使用了目标API 19.现在我想要使用目标API 22以及使用AppCompat-v7:22库来更改应用程序切换到Material Design的设计.但YouTubeBaseActivity无法打开,应用程序崩溃.下面我将发布到目前为止我所做的事情. EventDetail. 我开发了一款使用YouTube android API在应用内播放特定视频的应用.那时我已经使用了目标API 19,并且还使用了目标API 19.现在我想要使用目标API 22以及使用AppCompat-v7:22库来更改应用程序切换到Material Design的设计.但YouTubeBaseActivity无法打开,应用程序崩溃.下面我将发布到目前为止我所做的事情.

EventDetail.java

public class EventDetail extends YouTubeBaseActivity implements        YouTubePlayer.OnInitializedListener { ...protected voID onCreate(Bundle savedInstanceState) {        // remove the shadow from action bar        settheme(R.style.theme_TranslucentActionbar_Actionbar_NoOverlay);        super.onCreate(savedInstanceState);        setContentVIEw(R.layout.activity_event_detail);        // enable back button        getSupportActionbar().setHomebuttonEnabled(true);        getSupportActionbar().setdisplayHomeAsUpEnabled(true);        // setting the action bar initially transparent        mActionbarBackgroundDrawable = new colorDrawable(                color.parsecolor("#ec5c59"));        mActionbarBackgroundDrawable.setAlpha(0);        getSupportActionbar().setBackgroundDrawable(mActionbarBackgroundDrawable);        // binding the scrollvIEw...

清单文件

<activity        androID:name="com.dev.apk.evente.al.EventDetail"        androID:icon="@drawable/ikona_projekte"        androID:label="@string/Title_activity_event_detail"        androID:screenorIEntation="portrait"        androID:theme="@style/theme.TranslucentActionbar.Actionbar.Overlay" />

Layut文件:

<relativeLayout    androID:ID="@+ID/vIDeo_layout"    androID:layout_wIDth="fill_parent"    androID:layout_height="wrap_content"    androID:layout_marginBottom="20dp"    androID:paddingleft="23dp"    androID:paddingRight="23dp"    androID:paddingBottom="15dp"    androID:background="@drawable/event_background_block" >    <TextVIEw        androID:ID="@+ID/vIDeo_label"        androID:layout_wIDth="fill_parent"        androID:layout_height="wrap_content"        androID:layout_margin="5dp"        androID:background="@color/white"        androID:gravity="left"        androID:paddingtop="10dp"        androID:paddingBottom="10dp"        androID:text="VIDeo"        androID:textcolor="@color/VeryDarkGray"        androID:textSize="22sp" >    </TextVIEw>    <com.Google.androID.youtube.player.YouTubePlayerVIEw        androID:ID="@+ID/youtube_vIEw"        androID:layout_wIDth="fill_parent"        androID:layout_height="wrap_content"        androID:layout_below="@+ID/vIDeo_label"        androID:background="@color/white" /></relativeLayout>

theme.xml文件

<?xml version="1.0" enCoding="utf-8"?><resources>    <style name="theme.TranslucentActionbar" parent="theme.AppCompat.light.DarkActionbar">        <item name="androID:actionbarStyle">@style/Widget.Actionbar</item>    </style>    <style name="theme.TranslucentActionbar.Actionbar" />    <style name="theme.TranslucentActionbar.Actionbar.Overlay">        <item name="androID:actionbarStyle">@style/Widget.Actionbar.transparent</item>        <item name="androID:windowActionbarOverlay">true</item>        <item name="colorPrimary">@color/evente_date_color</item>        <item name="colorPrimaryDark">@color/evente_darken_color</item>    </style>    <!-- theme without Actionbar shadow (inherits main theme) -->    <style name="theme.TranslucentActionbar.Actionbar.NoOverlay" parent="theme.TranslucentActionbar.Actionbar.Overlay">        <item name="androID:windowContentOverlay">@null</item>    </style></resources>

所以在开始它不会打开,因为方法getActionbar()返回Null,然后我将其更改为getSupportActionbar()但我不认识它.然后在最后我更改了以下内容:

public class EventDetail extends AppCompatActivity implements        YouTubePlayer.OnInitializedListener {

它给了我以下错误:

java.lang.RuntimeException: Unable to start activity ComponentInfo{com.myikub.al/com.dev.apk.evente.al.EventDetail}: androID.vIEw.InflateException: Binary XML file line #250: Error inflating class com.Google.androID.youtube.player.YouTubePlayerVIEw    at androID.app.ActivityThread.performlaunchActivity(ActivityThread.java:2342)    at androID.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2417)    at androID.app.ActivityThread.access0(ActivityThread.java:148)    at androID.app.ActivityThread$H.handleMessage(ActivityThread.java:1355)    at androID.os.Handler.dispatchMessage(Handler.java:99)    at androID.os.Looper.loop(Looper.java:150)    at androID.app.ActivityThread.main(ActivityThread.java:5406)    at java.lang.reflect.Method.invokeNative(Native Method)    at java.lang.reflect.Method.invoke(Method.java:525)    at com.androID.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737)    at com.androID.internal.os.ZygoteInit.main(ZygoteInit.java:553)    at dalvik.system.NativeStart.main(Native Method)Caused by: androID.vIEw.InflateException: Binary XML file line #250: Error inflating class com.Google.androID.youtube.player.YouTubePlayerVIEw    at androID.vIEw.LayoutInflater.createVIEw(LayoutInflater.java:620)    at androID.vIEw.LayoutInflater.createVIEwFromTag(LayoutInflater.java:696)    at androID.vIEw.LayoutInflater.rInflate(LayoutInflater.java:755)    at androID.vIEw.LayoutInflater.rInflate(LayoutInflater.java:758)    at androID.vIEw.LayoutInflater.rInflate(LayoutInflater.java:758)    at androID.vIEw.LayoutInflater.inflate(LayoutInflater.java:492)    at androID.vIEw.LayoutInflater.inflate(LayoutInflater.java:397)    at androID.vIEw.LayoutInflater.inflate(LayoutInflater.java:353)    at androID.support.v7.app.AppCompatDelegateImplV7.setContentVIEw(AppCompatDelegateImplV7.java:249)    at androID.support.v7.app.AppCompatActivity.setContentVIEw(AppCompatActivity.java:106)    at com.dev.apk.evente.al.EventDetail.onCreate(EventDetail.java:112)    at androID.app.Activity.performCreate(Activity.java:5303)    at androID.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)    at androID.app.ActivityThread.performlaunchActivity(ActivityThread.java:2296)    at androID.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2417)    at androID.app.ActivityThread.access0(ActivityThread.java:148)    at androID.app.ActivityThread$H.handleMessage(ActivityThread.java:1355)    at androID.os.Handler.dispatchMessage(Handler.java:99)    at androID.os.Looper.loop(Looper.java:150)    at androID.app.ActivityThread.main(ActivityThread.java:5406)    at java.lang.reflect.Method.invokeNative(Native Method)    at java.lang.reflect.Method.invoke(Method.java:525)    at com.androID.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737)    at com.androID.internal.os.ZygoteInit.main(ZygoteInit.java:553)    at dalvik.system.NativeStart.main(Native Method)Caused by: java.lang.reflect.InvocationTargetException    at java.lang.reflect.Constructor.constructNative(Native Method)    at java.lang.reflect.Constructor.newInstance(Constructor.java:417)    at androID.vIEw.LayoutInflater.createVIEw(LayoutInflater.java:594)    at androID.vIEw.LayoutInflater.createVIEwFromTag(LayoutInflater.java:696)    at androID.vIEw.LayoutInflater.rInflate(LayoutInflater.java:755)    at androID.vIEw.LayoutInflater.rInflate(LayoutInflater.java:758)    at androID.vIEw.LayoutInflater.rInflate(LayoutInflater.java:758)    at androID.vIEw.LayoutInflater.inflate(LayoutInflater.java:492)    at androID.vIEw.LayoutInflater.inflate(LayoutInflater.java:397)    at androID.vIEw.LayoutInflater.inflate(LayoutInflater.java:353)    at androID.support.v7.app.AppCompatDelegateImplV7.setContentVIEw(AppCompatDelegateImplV7.java:249)    at androID.support.v7.app.AppCompatActivity.setContentVIEw(AppCompatActivity.java:106)    at com.dev.apk.evente.al.EventDetail.onCreate(EventDetail.java:112)    at androID.app.Activity.performCreate(Activity.java:5303)    at androID.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)    at androID.app.ActivityThread.performlaunchActivity(ActivityThread.java:2296)    at androID.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2417)    at androID.app.ActivityThread.access0(ActivityThread.java:148)    at androID.app.ActivityThread$H.handleMessage(ActivityThread.java:1355)    at androID.os.Handler.dispatchMessage(Handler.java:99)    at androID.os.Looper.loop(Looper.java:150)    at androID.app.ActivityThread.main(ActivityThread.java:5406)    at java.lang.reflect.Method.invokeNative(Native Method)    at java.lang.reflect.Method.invoke(Method.java:525)    at com.androID.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737)    at com.androID.internal.os.ZygoteInit.main(ZygoteInit.java:553)    at dalvik.system.NativeStart.main(Native Method)Caused by: java.lang.IllegalStateException: A YouTubePlayerVIEw can only be created with an Activity  which extends YouTubeBaseActivity as its context.    at com.Google.androID.youtube.player.YouTubePlayerVIEw.<init>(UnkNown Source)    ....

我正在使用AndroID Studio.任何想法将不胜感激.

解决方法 问题是你正在使用 YouTubePlayerView,这需要你的Activity扩展 YouTubeBaseActivity.然后你改变了你的活动,现在它扩展了AppCompatActivity.这打破了YouTubePlayerVIEw.

解决方案非常简单:使用YouTubePlayerFragment类.这对活动没有任何要求,为您提供了大量的主题选项.

总结

以上是内存溢出为你收集整理的android – YouTubePlayer与AppCompat v7库一起使用全部内容,希望文章能够帮你解决android – YouTubePlayer与AppCompat v7库一起使用所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/web/1137025.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-30
下一篇2022-05-30

发表评论

登录后才能评论

评论列表(0条)

    保存