java.lang.RuntimeException:无法启动活动(TextView为null)

时间:2016-07-17 07:45:59

标签: android custom-font

我正在尝试在我的Android应用中添加自定义字体。

LoginActivity.java

import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.content.Intent;
import android.app.Activity;
import android.widget.TextView;
import android.graphics.Typeface;

public class LoginActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_login);
        Button login = (Button) findViewById(R.id.login);
        Button signup = (Button) findViewById(R.id.signup);
        TextView username = (TextView) findViewById(R.id.username);
        Typeface custom_font = Typeface.createFromAsset(this.getAssets(), "fonts/smartwatch.ttf");
        username.setTypeface(custom_font);
        login.setOnClickListener(new View.OnClickListener(){
            public void onClick(View view){
                Intent loginOnlyIntent = new Intent(view.getContext(), LoginOnlyActivity.class);
                startActivity(loginOnlyIntent);
            }
        });


        signup.setOnClickListener(new View.OnClickListener(){
            public void onClick(View view){
                Intent signUpIntent = new Intent(view.getContext(), Signup.class);
                startActivity(signUpIntent);
            }
        });


    }
}

我收到错误:

java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example/com.example.LoginActivity}: java.lang.NullPointerException

我也在assests文件夹中添加了src/main文件夹。在assests文件夹中fonts文件夹中我有字体文件smartwatch.tff

我已经检查了几乎所有可用的答案,但到目前为止我没有任何工作。

更新 使用Debugger后,我发现了

TextView username = (TextView) findViewById(R.id.username);

返回null,因此返回NPE。

添加布局文件:

 <LinearLayout
            android:orientation="horizontal"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:paddingLeft="155.0dip"
            android:paddingTop="200.0dip"
            android:paddingRight="4.0dip"
            android:paddingBottom="1.0dip"
            android:layout_below="@+id/TextView02">
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="@string/UserName"
                android:id="@+id/username"/>
            <EditText
                android:id="@+id/edit_phone"
                android:layout_height="wrap_content"
                android:layout_width="wrap_content"
                android:inputType="number"
                android:hint="  "/>
 </LinearLayout>

请帮我解释为什么textview用户名为空

1 个答案:

答案 0 :(得分:2)

您的代码适用于我。 enter image description here

在LinearLayout中,您提供了缺少的按钮,但我认为您已将它们添加到项目中。另外,我有错误,因为你省略了XML命名空间

xmlns:android="http://schemas.android.com/apk/res/android"

进入线性布局。

尝试无效并重新启动项目,TextView上的空指针问题很奇怪,你做得很好,除非问题出在其他地方。

确保您已创建Assets文件夹: 右键单击&#34; app&#34;文件夹,新 - &gt;文件夹 - &gt;资产文件夹