2016-11-28 37 views
1

我的Android TV的应用正常工作与这些版本:升级的Leanback版本25.0.1导致guidedStepFragment崩溃

compile 'com.android.support:support-v4:23.2.1' 
compile 'com.android.support:preference-leanback-v17:23.2.1' 
compile 'com.android.support:leanback-v17:23.2.1' 

但是,一旦我将其升级到:

compile 'com.android.support:support-v4:25.0.1' 
compile 'com.android.support:preference-leanback-v17:25.0.1' 
compile 'com.android.support:leanback-v17:25.0.1' 

我看到每次崩溃我打开了一个guidedStepFragment。下面是崩溃日志:

了java.lang.RuntimeException:无法启动活动 ComponentInfo {...}:android.view.InflateException:二进制XML文件 线#18:无效的浮动:” 2130772240 “ 在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2416) 在 android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476) 在android.app.ActivityThread.-wrap11(ActivityThread.java) at android.app.ActivityThread $ H.han在android.app.ActivityThread.main(android.os.Load.loop)上使用dleMessage(ActivityThread.java:1344) (android.os.Handler.dispatchMessage(Handler.java:102) ActivityThread.java:5422) 在java.lang.reflect.Method.invoke(本机方法) 在 com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:726) 在com.android。 internal.os.ZygoteInit.main(ZygoteInit.java:616) 引起:android.view.InflateException:二进制XML文件行#18: 无效浮点数:“?2130772240” 在android.view.LayoutInflater.inflate(LayoutInflater.java:539) at android.view.LayoutInflater.inflate(LayoutInflater.java:423) at android.support.v17.leanback.widget.GuidedActionsStylist.onCreateView(GuidedActionsStylist。的java:409) 在 android.support.v17.leanback.app.GuidedStepFragment.onCreateView(GuidedStepFragment.java:1044) 在android.app.Fragment.performCreateView(Fragment.java:2220) 在 android.app。 FragmentManagerImpl.moveToState(FragmentManager.java:973) at android.app.FragmentManagerImpl.moveToState(Fragmen tManager.java:1148) 在android.app.BackStackRecord.run(BackStackRecord.java:793) 在 android.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1535) 在 android.app.FragmentController.execPendingActions( FragmentController.java:325) 在android.app.Activity.performStart(Activity.java:6267) 在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2379) 在 android.app.ActivityThread.handleLaunchActivity( ActivityThread.java:2476) at android.app。 ActivityThread.-wrap11(ActivityThread.java) at android.app.ActivityThread $ H.handleMessage(ActivityThread.java:1344) at android.os.Handler。DispatchMessage函数(Handler.java:102) 在android.os.Looper.loop(Looper.java:148) 在android.app.ActivityThread.main(ActivityThread.java:5422)

应用崩溃而为guidedStepFragment创建视图(onCreateView)。

有关如何解决它的任何想法?

+0

您是否尝试过清理和重建项目? – ULazdins

+0

切换到25.0.1 yersterday。还没有得到任何问题 –

回答

0

您可能想要检查Adding a Guided Step其中它提到支持用于构建Leanback用户体验的类的android.support.v17.leanback.app的使用。如文档中所述,

Leanback包含更高级别构造块的混合,例如android.support.v17.leanback.app包中的片段。着名的例子是BrowseFragmentGuidedStepFragment

而且,除此之外,这些引用也可能有帮助:

1

在我的情况,我用我自己的自定义样式GuidedStepFragment该从Theme.LeanbackBase继承。

取而代之,我将自定义样式从Theme.Leanback.GuidedStep继承。此更改解决了我的问题。

0

这是由于支持库版本低于17的Activity与支持库“android.support.v17.leanback”中的GuidedStepFragment不兼容造成的。

使用活动从 “android.app.Activity”:

import android.app.Activity; 
import android.os.Bundle; 
import android.support.v17.leanback.app.GuidedStepFragment; 

public class YourActivity extends Activity { 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     if (savedInstanceState == null) { 
      GuidedStepFragment.addAsRoot(
       this, new YourGuidedStepFragment(), android.R.id.content 
      ); 
     } 
    } 
} 

还可以使用Theme.Leanback为您的活动:

<manifest...> 
    <application...> 
     <activity 
      android:name=".YourActivity" 
      android:theme="@style/Theme.Leanback" 
     /> 
    </application> 
</manifest>