2016-08-01 121 views
2

我使用Shamanland FontIconView但我的活動不能啓動,我的應用程序崩潰,Android的錯誤充氣類com.shamanland.fonticon.FontIconView

Steack跟蹤:

 FATAL EXCEPTION: main 
    Process: com.example.mmido.asfarandroid, PID: 14010 
    java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.mmido.asfarandroid/com.example.mmido.asfarandroid.As 
     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2385) 
     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2436) 
     at android.app.ActivityThread.access$800(ActivityThread.java:157) 
     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1374) 
     at android.os.Handler.dispatchMessage(Handler.java:110) 
     at android.os.Looper.loop(Looper.java:193) 
     at android.app.ActivityThread.main(ActivityThread.java:5398) 
     at java.lang.reflect.Method.invokeNative(Native Method) 
     at java.lang.reflect.Method.invoke(Method.java:515) 
     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:940) 
     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:756) 
     at dalvik.system.NativeStart.main(Native Method) 
    Caused by: android.view.InflateException: Binary XML file line #15: Error inflating class com.shamanland.fonticon.FontIconView 
     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.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:280) 
     at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:140) 
     at com.example.mmido.asfarandroid.AsfarApp.PaymentActivity.onCreate(PaymentActivity.java:13) 
     at android.app.Activity.performCreate(Activity.java:5264) 
     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1088) 
     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2349) 
     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2436)  
     at android.app.ActivityThread.access$800(ActivityThread.java:157)  
     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1374)  
     at android.os.Handler.dispatchMessage(Handler.java:110)  
     at android.os.Looper.loop(Looper.java:193)  
     at android.app.ActivityThread.main(ActivityThread.java:5398)  
     at java.lang.reflect.Method.invokeNative(Native Method)  
     at java.lang.reflect.Method.invoke(Method.java:515)  
     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:940)  
     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:756)  
     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:423) 
     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.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:280)  
     at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:140)  
     at com.example.mmido.asfarandroid.AsfarApp.PaymentActivity.onCreate(PaymentActivity.java:13)  
     at android.app.Activity.performCreate(Activity.java:5264)  
     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1088)  
     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2349)  
     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2436)  
     at android.app.ActivityThread.access$800(ActivityThread.java:157)  
     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1374)  
     at android.os.Handler.dispatchMessage(Handler.java:110)  
     at android.os.Looper.loop(Looper.java:193)  
     at android.app.ActivityThread.main(ActivityThread.java:5398)  
     at java.lang.reflect.Method.invokeNative(Native Method)  
     at java.lang.reflect.Method.invoke(Method.java:515)  
     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:940)  
     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:756)  
     at dalvik.system.NativeStart.main(Native Method)  
    Caused by: java.lang.IllegalStateException 
     at com.shamanland.fonticon.FontIconTypefaceHolder.getTypeface(FontIconTypefaceHolder.java:11) 
     at com.shamanland.fonticon.FontIconView.<init>(FontIconView.java:129) 
     at java.lang.reflect.Constructor.constructNative(Native Method)  
     at java.lang.reflect.Constructor.newInstance(Constructor.java:423)  
     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.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:280)  
     at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:140)  
     at com.example.mmido.asfarandroid.AsfarApp.PaymentActivity.onCreate(PaymentActivity.java:13)  
     at android.app.Activity.performCreate(Activity.java:5264)  
     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1088)  
     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2349)  
     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2436)  
     at android.app.ActivityThread.access$800(ActivityThread.java:157)  
     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1374)  
     at android.os.Handler.dispatchMessage(Handler.java:110)  
     at android.os.Looper.loop(Looper.java:193)  
     at android.app.ActivityThread.main(ActivityThread.java:5398)  
     at java.lang.reflect.Method.invokeNative(Native Method)  
     at java.lang.reflect.Method.invoke(Method.java:515)  
     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:940)  
     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:756)  
     at dalvik.system.NativeStart.main(Native Method)  

我的佈局:

?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:background="@android:color/white" 
    android:focusableInTouchMode="true" 
    android:orientation="vertical"> 

    <RelativeLayout 
     android:layout_width="match_parent" 
     android:layout_height="@dimen/pf_tittle_header_height" 
     android:background="@color/pf_gray"> 

     <com.shamanland.fonticon.FontIconView 
      android:id="@+id/backButton" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_centerVertical="true" 
      android:layout_margin="@dimen/pf_border_space" 
      android:clickable="true" 
      android:onClick="onBackPressed" 
      android:text="@string/icon_left_circled" 
      android:textColor="@android:color/white" 
      android:textSize="@dimen/pf_back_icon_txt_size" 
      app:pressedGlowColor="@color/pf_green" 
      app:pressedGlowRadius="@dimen/pf_icon_glow_radius" /> 

線#15是這一行<com.shamanland.fonticon.FontIconView 我檢查了FontIconView中使用的字符串值和維度,它們是正確的。請問這裏的錯誤是什麼?

謝謝。

+0

是否有另一個「由」引起的「caluse」日誌?我問的原因是這樣的:http://stackoverflow.com/questions/6020719/what-c​​ould-cause-java-lang-reflect-invocationtargetexception – Vaiden

+0

你使用這個第三方類嗎? –

+0

@Vaiden我「由無不引起」條款 –

回答

1

構造函數拋出IllegalStateException由於:

Caused by: java.lang.IllegalStateException 
     at com.shamanland.fonticon.FontIconTypefaceHolder.getTypeface(FontIconTypefaceHolder.java:11) 

由於這個項目是open source,把一個斷點和調試問題。

+0

我會嘗試現在 –

+0

我在gradle文件中添加了這個庫的依賴關係,我不知道應該在哪裏放置一個斷點? –

+0

寫入FontIconTypefaceHolder圖標;任何地方,alt +左​​鍵單擊類名將帶你到源代碼。然後在那裏創建一個斷點。 – Fabio

1

我也面臨着同樣的問題,前天在我的項目,所以我找到了解決的辦法是:只要貼上資產文件夾內的文件名爲.ttf在你的項目(如文件夾不存在只創建一個內部APP- > src-> main)並在onCreate()方法中初始化您主要活動中的FontIconTypefaceHolder()。就像

FontIconTypefaceHolder.init(getAssets(),"icon.ttf");