2016-10-19 6 views
2

これは数日しかかかりませんでしたが、解決策を見つけることができませんでした。フォントファイルが見つからないというrobolectricテストを実行しているときにエラーが発生しました。以下は、私がRobolectric試験におけるアクティビティインスタンスをステップアップするとき、Robolectricテストでフォントファイルを見つけることができません

android.view.InflateException: XML file build/intermediates/res/merged/debug/layout/fragment_users_list.xml line #-1 (sorry, not yet implemented): Error inflating class com. mycustom.common.views.RobotoTextView 

// real issue here 
Caused by: java.lang.RuntimeException: Font not found at [build/intermediates/bundles/debug/assets/Roboto-Light.ttf] 
at org.robolectric.shadows.ShadowTypeface.createFromAsset(ShadowTypeface.java:73) 
at android.graphics.Typeface.createFromAsset(Typeface.java) 
at com.mycustom.utils.font.RobotoUtil.getRobotoTypeface(RobotoUtil.java:45) 
at com.mycustom.common.views.RobotoTextView.setFontType(RobotoTextView.java:46) 
at com.mycustom.common.views.RobotoTextView.<init>(RobotoTextView.java:33) 
... 89 more 

は基本的に私は、カスタムフォントファイルを使用してXMLファイルを持って、フォントファイルはRESフォルダに保存された全体のスタックトレースであり、活動が初期化されます/ build/intermediates/res/mergedフォルダ内のフォントファイルを探しますが、どういうわけかrobolectricはそのフォントファイルを見つけることができません。

その理由がわかりません。どんなアドバイスも大歓迎です!

答えて

5

これはAndroid Gradleプラグインからv2.2.0にアップグレードされたbugと呼ばれています。

としての回避策ごbuild.gradleにこれを追加します。

applicationVariants.all { variant -> 
     def productFlavor = variant.productFlavors[0] != null ? "${variant.productFlavors[0].name.capitalize()}" : "" 
     def buildType = "${variant.buildType.name.capitalize()}" 
     tasks["compile${productFlavor}${buildType}UnitTestSources"].dependsOn(tasks["merge${productFlavor}${buildType}Assets"]) 
    } 
完璧な作品
+0

!ありがとうございました! – Cheng

関連する問題