gpt4 book ai didi

java - TypeFace.createFromAsset 找不到字体错误

转载 作者:太空宇宙 更新时间:2023-11-03 13:40:48 44 4
gpt4 key购买 nike

我正在制作必须以“NASTALIQ.TTF”字体显示文本的 Android 应用程序。我将字体 ttf 文件放在项目的以下目录中:

  1. C:\Users\Zeeshan\AndroidStudioProjects\NasirKazmiPehliBarish\app\build\intermediates\assets\fonts\NASTALIQ.TTF

  2. C:\Users\Zeeshan\AndroidStudioProjects\NasirKazmiPehliBarish\app\build\generated\assets\fonts\NASTALIQ.TTF

我使用以下行来加载字体:

Typeface tf = Typeface.createFromAsset(this.getAssets(), "/fonts/NASTALIQ.TTF");

但它抛出找不到字体的异常。这是日志:

09-24 20:42:59.997 2380-2380/com.neatsoft.nasirkazmipehlibarish E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.neatsoft.nasirkazmipehlibarish, PID: 2380
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.neatsoft.nasirkazmipehlibarish/com.neatsoft.nasirkazmipehlibarish.Ghazals}: java.lang.RuntimeException: Font asset not found /fonts/NASTALIQ.TTF
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2665)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2726)
at android.app.ActivityThread.-wrap12(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1477)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6119)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776)
Caused by: java.lang.RuntimeException: Font asset not found /fonts/NASTALIQ.TTF
at android.graphics.Typeface.createFromAsset(Typeface.java:206)
at com.neatsoft.nasirkazmipehlibarish.Ghazals.onCreate(Ghazals.java:81)
at android.app.Activity.performCreate(Activity.java:6679)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1118)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2618)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2726) 
at android.app.ActivityThread.-wrap12(ActivityThread.java) 
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1477) 
at android.os.Handler.dispatchMessage(Handler.java:102) 
at android.os.Looper.loop(Looper.java:154) 
at android.app.ActivityThread.main(ActivityThread.java:6119) 
at java.lang.reflect.Method.invoke(Native Method) 
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776) 

以下是包含字体代码的我的 Ghazals.java:

package com.neatsoft.nasirkazmipehlibarish;

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

import java.io.File;

import static android.R.attr.typeface;

public class Ghazals extends AppCompatActivity {
static int GHAZAL_POSITION=0;
TextView tvGhazals;

String ghazals[] = {"میں نے جب لکھنا سیکھا تھا\n" +
"پہلے تیرا نام لکھا تھا\n" +
"\n" +
"میں وہ صبرِ صمیم ہوں جس نے\n" +
"بار امانت سر پہ لیا تھا\n" +
"\n" +
"میں وہ اسمِ عظیم ہوں جس کو\n" +
"جن و ملک نے سجدہ کیا تھا\n" +
"\n" +
"تو نے کیوں مرا ہاتھ نہ پکڑا\n" +
"میں جب رستے سے بھٹکا تھا\n" +
"\n" +
"جو پایا ہے وہ تیرا ہے\n" +
"جو کھویا وہ بھی تیرا تھا\n" +
"\n" +
"تجھ بن ساری عمر گزاری\n" +
"لوگ کہیں گے تو میرا تھا\n" +
"\n" +
"پہلی بارش بھیجنے والے\n" +
"میں ترے درشن کا پیاسا تھا",



"تو جب میرے گھر آیا تھا\n" +
"میں اک سپنا دیکھ رہا تھا\n" +
"\n" +
"تیرے بالوں کی خوشبو سے\n" +
"سارا آنگن مہک رہا تھا\n" +
"\n" +
"چاند کی دھیمی دھیمی ضو میں\n" +
"سانوا مکھڑا لَو دیتا تھا\n" +
"\n" +
"تیری نیند بھی اُڑی اُڑی تھی\n" +
"میں بھی کچھ کچھ جاگ رہا تھا\n" +
"\n" +
"میرے ہاتھ بھی سلگ رہے تھے\n" +
"تیرا ماتھا بھی جلتا تھا\n" +
"\n" +
"دو روحوں کا پیاسا دل\n" +
"گرج گرج کر برس رہا تھا\n" +
"\n" +
"دو یادوں کا چڑھتا دریا\n" +
"ایک ہی ساگر میں گرتا تھا\n" +
"\n" +
"دل کی کہانی کہتے کہتے\n" +
"رات کا آنچل بھیگ چلا تھا\n" +
"\n" +
"رات گئے سویا تھا لیکن\n" +
"تجھ سے پہلے جاگ اُٹھا تھا"};


public void goToNextActivity(int positionOfGhazal){
GHAZAL_POSITION = positionOfGhazal;
}


@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_ghazals);

tvGhazals = (TextView) findViewById(R.id.textView_ghazal);
tvGhazals.setText(ghazals[GHAZAL_POSITION]);
Typeface tf = Typeface.createFromAsset(this.getAssets(), "/fonts/NASTALIQ.TTF");
//tvGhazals.setTypeface(tf); */
}
}

最后,这是 startar MainActivity:

package com.neatsoft.nasirkazmipehlibarish;

import android.content.Intent;
import android.graphics.Typeface;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity {
private static ListView listView;
private static String[] list = new String[] {
"میں نے جب لکھنا سیکھا تھا",
"تو جب میرے گھر آیا تھا",
"میں جب تیرے گھر پہنچا تھا",
"شام کا شیشہ کانپ رہا تھا",
"دن کا پھول ابھی جاگا تھا",
"پتھر کا شہر وہ بھی کیا تھا",
"پچھلے پہر کا سناٹا تھا",
"گرد نے خیمہ تھام لیا تھا",
"تُو جب دوبارہ آیا تھا",
"تجھ بن گھر کتنا سونا تھا",
"دھوپ تھی اور بادل چھایا تھا",
"دم ہونٹوں پر آکے رکا تھا",
"چاند ابھی تھک کر سویا تھا",
"نئے دیس کا رنگ نیا تھا",
"چھوٹی رات سفر لمبا تھا",
"تھوڑی دیر کو جی بہلا تھا",
"میں تیرے شہر سے پھر گزرا تھا",
"میں اس شہر میں کیوں آیا تھا",
"پل پل کانٹا سا چبھتا تھا",
"روتے روتے کون ہنسا تھا",
"پون ہری جنگل بھی ہرا تھا",
"تنہائی کا دکھ گہرا تھا",
"تیرا قصور نہیں میرا تھا"
};

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ListView();



}

public void ListView(){
listView = (ListView) findViewById(R.id.listView);
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, R.layout.titles_list, list);
listView.setAdapter(adapter);

listView.setOnItemClickListener(
new AdapterView.OnItemClickListener(){
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
String value = (String) listView.getItemAtPosition(position);
Toast.makeText(MainActivity.this, position + "", Toast.LENGTH_LONG).show();

Ghazals ghazal = new Ghazals();
ghazal.goToNextActivity(position);

Intent intent = new Intent("com.neatsoft.nasirkazmipehlibarish.Ghazals");
startActivity(intent);

}
}
);

}


}

可能是我提供了错误的路径,它没有找到目标字体。我尝试了很多组合,但它们没有用,例如:

Typeface tf = Typeface.createFromAsset(this.getAssets(), "/fonts/NASTALIQ.TTF");
Typeface tf = Typeface.createFromAsset(this.getAssets(), "fonts/NASTALIQ.TTF");
Typeface tf = Typeface.createFromAsset(this.getAssets(), "/NASTALIQ.TTF");
Typeface tf = Typeface.createFromAsset(this.getAssets(), "NASTALIQ.TTF");
Typeface tf = Typeface.createFromAsset(this.getAssets(), "assets/fonts/NASTALIQ.TTF");

最佳答案

将你的字体文件从 main/assets/fonts/NASTALIQ.TTF如果任何文件夹不存在,请创建它。

关于java - TypeFace.createFromAsset 找不到字体错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52483196/

44 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com