2016-06-21 13 views
-1

私のアプリケーションのログインアクティビティでは、私の資産フォルダのフォントに変数を割り当てています。しかし、私は、アプリケーションを実行すると、私はメソッドがnullポインタの例外を返すと言うlogcatのstacktraceを取得します。Typeface.createFromAsset()はフォントのヌルポインタ例外を返します

がここにあります私のLoginActivity.java

package com.joshhess.fittrak; 

import android.graphics.Typeface; 
import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 
import android.widget.TextView; 

import butterknife.BindView; 
import butterknife.ButterKnife; 

public class LoginActivity extends AppCompatActivity { 

    // UI Elements 
    @BindView(R.id.title) TextView title; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_login); 
     ButterKnife.bind(this); 

     // Set font for widgets 
     Typeface roboto = Typeface.createFromAsset(this.getAssets(), "fonts/Roboto-Regular.ttf"); 
     title.setTypeface(roboto); 
    } 
} 

ここに私のスタックトレースです:

06-21 13:37:37.298 27151-27151/com.joshhess.fittrak E/AndroidRuntime: FATAL EXCEPTION: main 
                     Process: com.joshhess.fittrak, PID: 27151 
                    java.lang.RuntimeException: Unable to start activity ComponentInfo{com.joshhess.fittrak/com.joshhess.fittrak.LoginActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.TextView.setTypeface(android.graphics.Typeface)' on a null object reference 
                     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2661) 
                     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2726) 
                     at android.app.ActivityThread.access$900(ActivityThread.java:172) 
                     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1421) 
                     at android.os.Handler.dispatchMessage(Handler.java:102) 
                     at android.os.Looper.loop(Looper.java:145) 
                     at android.app.ActivityThread.main(ActivityThread.java:5835) 
                     at java.lang.reflect.Method.invoke(Native Method) 
                     at java.lang.reflect.Method.invoke(Method.java:372) 
                     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1399) 
                     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1194) 
                    Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.TextView.setTypeface(android.graphics.Typeface)' on a null object reference 
                     at com.joshhess.fittrak.LoginActivity.onCreate(LoginActivity.java:24) 
                     at android.app.Activity.performCreate(Activity.java:6221) 
                     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1119) 
                     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2614) 
                     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2726)  
                     at android.app.ActivityThread.access$900(ActivityThread.java:172)  
                     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1421)  
                     at android.os.Handler.dispatchMessage(Handler.java:102)  
                     at android.os.Looper.loop(Looper.java:145)  
                     at android.app.ActivityThread.main(ActivityThread.java:5835)  
                     at java.lang.reflect.Method.invoke(Native Method)  
                     at java.lang.reflect.Method.invoke(Method.java:372)  
                     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1399)  
                     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1194)  

そして最後に、ここで私のactivity_login.xmlレイアウトです:

<?xml version="1.0" encoding="utf-8"?> 
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:paddingBottom="@dimen/activity_vertical_margin" 
    android:paddingLeft="@dimen/activity_horizontal_margin" 
    android:paddingRight="@dimen/activity_horizontal_margin" 
    android:paddingTop="@dimen/activity_vertical_margin" 
    android:background="@color/colorPrimary" 
    tools:context="com.joshhess.fittrak.LoginActivity"> 

    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:orientation="vertical" 
     android:paddingTop="56dp" 
     android:paddingRight="24dp" 
     android:paddingLeft="24dp"> 

     <TextView android:id="@+id/title" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:gravity="center" 
      android:paddingTop="32dp" 
      android:textColor="@color/colorAccent" 
      android:textSize="55sp" 
      android:text="@string/app_name" /> 

    </LinearLayout> 

</ScrollView> 

は、誰もが任意のアイデアを持っていますなぜそのがnullを返します参照?私のフォルダはアセットと呼ばれ、ファイル名は正しいです。

+0

ドンは、スクリーンショットのようにソースコードを投稿... –

+0

問題は、あなたの書体ではありません。この問題は、@BindViewが機能しておらず、titleがnullであるためです。 –

+1

TextViewに適切なビューが割り当てられていないようです。親切にあなたのJavaコードを共有してください。 –

答えて

0

フィールドタイトルはまだnullです。 あなたが

title.setTypeFace(robot)

を呼び出したときに、ヌルオブジェクトのメソッドを呼び出しているので、そう、それはNullPointerExceptionがなります。 だと思います

@BindView(R.id.title) TextView title; 

タイトルが初期化されていません。 タイトル値のためにそれをデバッグしてください、あなたは何がnullであるかの正確な問題を得るでしょう。 ButterKnifeの設定に問題があるかもしれません。

私はこれに似た質問の下で見つけましたが、デバッグして修正するのに役立つかもしれません。 How to debug Null Pointer Exception raised by Butterknife in an Android app?

2

Renan Bandeiraのおかげで、私は自分の問題を認識しました。私のbuild.gradleファイルにはapt 'com.jakewharton:butterknife:8.1.0'が含まれていませんでした。コンパイル行の下にその行を追加した後、それは完璧にうまくいった。ここに私の依存関係が私のbuild.gradleに今ある:

dependencies { 
    compile fileTree(dir: 'libs', include: ['*.jar']) 
    testCompile 'junit:junit:4.12' 
    compile 'com.android.support:appcompat-v7:24.0.0' 
    compile 'com.jakewharton:butterknife:8.1.0' 
    apt 'com.jakewharton:butterknife-compiler:8.1.0' 
} 
+1

私は2日間でこの答えを受け入れるでしょう、解決のためのRenan Bandeiraにもう一度感謝します。 – JoshuaHess

関連する問題