2016-11-28 41 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>