Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 安卓&x2013;自定义字体崩溃应用程序_Android_Fonts_Crash - Fatal编程技术网

Android 安卓&x2013;自定义字体崩溃应用程序

Android 安卓&x2013;自定义字体崩溃应用程序,android,fonts,crash,Android,Fonts,Crash,我正在尝试将文本视图的字体更改为自定义字体。已经阅读并尝试了说明。所讨论的字体是Roboto Thin,直接从下载,并且位于ttf 主要活动类别的代码如下所示: TextView txt = (TextView) findViewById(R.id.hometext); Typeface font = Typeface.createFromAsset(getAssets(), "Roboto-Thin.ttf"); txt.setTypefac

我正在尝试将文本视图的字体更改为自定义字体。已经阅读并尝试了说明。所讨论的字体是Roboto Thin,直接从下载,并且位于ttf

主要活动类别的代码如下所示:

TextView txt  = (TextView) findViewById(R.id.hometext);                  
Typeface font = Typeface.createFromAsset(getAssets(), "Roboto-Thin.ttf");       
txt.setTypeface(font);

// "hometext" is the TextView I wish to change font of.
应用程序不会崩溃时,上述3行的评论,我希望隔离的问题

其他etc信息:

  • 安卓4.1.2(API 16)
  • 在安卓4.4上测试
编辑: 还尝试了“fonts/Roboto Thin.ttf”和“assets/fonts/Roboto Thin.ttf”,这两种方法都不起作用

01-17 22:38:29.086: D/AndroidRuntime(17774): Shutting down VM
01-17 22:38:29.086: W/dalvikvm(17774): threadid=1: thread exiting with uncaught exception (group=0x415f4ba8)
01-17 22:38:29.106: E/AndroidRuntime(17774): FATAL EXCEPTION: main
01-17 22:38:29.106: E/AndroidRuntime(17774): Process: sp.com, PID: 17774
01-17 22:38:29.106: E/AndroidRuntime(17774): java.lang.RuntimeException: Unable to start activity ComponentInfo{sp.com/sp.com.POSServices}: java.lang.RuntimeException: native typeface cannot be made
01-17 22:38:29.106: E/AndroidRuntime(17774):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2195)
01-17 22:38:29.106: E/AndroidRuntime(17774):    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2245)
01-17 22:38:29.106: E/AndroidRuntime(17774):    at android.app.ActivityThread.access$800(ActivityThread.java:135)
01-17 22:38:29.106: E/AndroidRuntime(17774):    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196)
01-17 22:38:29.106: E/AndroidRuntime(17774):    at android.os.Handler.dispatchMessage(Handler.java:102)
01-17 22:38:29.106: E/AndroidRuntime(17774):    at android.os.Looper.loop(Looper.java:136)
01-17 22:38:29.106: E/AndroidRuntime(17774):    at android.app.ActivityThread.main(ActivityThread.java:5017)
01-17 22:38:29.106: E/AndroidRuntime(17774):    at java.lang.reflect.Method.invokeNative(Native Method)
01-17 22:38:29.106: E/AndroidRuntime(17774):    at java.lang.reflect.Method.invoke(Method.java:515)
01-17 22:38:29.106: E/AndroidRuntime(17774):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)
01-17 22:38:29.106: E/AndroidRuntime(17774):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
01-17 22:38:29.106: E/AndroidRuntime(17774):    at dalvik.system.NativeStart.main(Native Method)
01-17 22:38:29.106: E/AndroidRuntime(17774): Caused by: java.lang.RuntimeException: native typeface cannot be made
01-17 22:38:29.106: E/AndroidRuntime(17774):    at android.graphics.Typeface.<init>(Typeface.java:175)
01-17 22:38:29.106: E/AndroidRuntime(17774):    at android.graphics.Typeface.createFromAsset(Typeface.java:149)
01-17 22:38:29.106: E/AndroidRuntime(17774):    at sp.com.POSServices.onCreate(POSServices.java:18)
01-17 22:38:29.106: E/AndroidRuntime(17774):    at android.app.Activity.performCreate(Activity.java:5231)
01-17 22:38:29.106: E/AndroidRuntime(17774):    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
01-17 22:38:29.106: E/AndroidRuntime(17774):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2159)
01-17 22:38:29.106: E/AndroidRuntime(17774):    ... 11 more
01-1722:38:29.086:D/AndroidRuntime(17774):关闭虚拟机
01-17 22:38:29.086:W/dalvikvm(17774):threadid=1:线程以未捕获异常退出(组=0x415f4ba8)
01-1722:38:29.106:E/AndroidRuntime(17774):致命异常:主
01-17 22:38:29.106:E/AndroidRuntime(17774):进程:sp.com,PID:17774
01-17 22:38:29.106:E/AndroidRuntime(17774):java.lang.RuntimeException:无法启动活动组件信息{sp.com/sp.com.possServices}:java.lang.RuntimeException:无法生成本机字体
01-17 22:38:29.106:E/AndroidRuntime(17774):在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2195)
01-17 22:38:29.106:E/AndroidRuntime(17774):在android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2245)
01-17 22:38:29.106:E/AndroidRuntime(17774):在android.app.ActivityThread.access$800(ActivityThread.java:135)
01-17 22:38:29.106:E/AndroidRuntime(17774):在android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196)
01-17 22:38:29.106:E/AndroidRuntime(17774):在android.os.Handler.dispatchMessage(Handler.java:102)上
01-1722:38:29.106:E/AndroidRuntime(17774):在android.os.Looper.loop(Looper.java:136)
01-17 22:38:29.106:E/AndroidRuntime(17774):在android.app.ActivityThread.main(ActivityThread.java:5017)上
01-17 22:38:29.106:E/AndroidRuntime(17774):位于java.lang.reflect.Method.Invokenactive(本机方法)
01-1722:38:29.106:E/AndroidRuntime(17774):在java.lang.reflect.Method.invoke(Method.java:515)
01-17 22:38:29.106:E/AndroidRuntime(17774):在com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)
01-17 22:38:29.106:E/AndroidRuntime(17774):在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
01-17 22:38:29.106:E/AndroidRuntime(17774):在dalvik.system.NativeStart.main(本机方法)
01-17 22:38:29.106:E/AndroidRuntime(17774):原因:java.lang.RuntimeException:无法生成本机字体
01-1722:38:29.106:E/AndroidRuntime(17774):在android.graphics.Typeface.(Typeface.java:175)
01-17 22:38:29.106:E/AndroidRuntime(17774):在android.graphics.Typeface.createFromAsset(Typeface.java:149)
01-1722:38:29.106:E/AndroidRuntime(17774):在sp.com.POSServices.onCreate(POSServices.java:18)
01-17 22:38:29.106:E/AndroidRuntime(17774):在android.app.Activity.performCreate(Activity.java:5231)
01-17 22:38:29.106:E/AndroidRuntime(17774):在android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
01-17 22:38:29.106:E/AndroidRuntime(17774):在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2159)
01-1722:38:29.106:E/AndroidRuntime(17774):。。。还有11个

看看你的字体在哪里。如果其为资产/字体,则字体代码应为:

Typeface.createFromAsset(getAssets(), "fonts/Roboto-Thin.ttf");

你应该先搜索相关的问题,因为上面说不能打印字体。你给了正确的路径吗?如果是,也测试其他字体

和以前一样的问题:

另外,使用Android的Fontify库。它使一切变得更加容易和更好

网址:

好的,安卓系统有一个bug!这应该管用

public class Typefaces {
    private static final String TAG = "Typefaces";

    private static final Hashtable<String, Typeface> cache = new Hashtable<String, Typeface>();

        public static Typeface get(Context c, String assetPath) {
            synchronized (cache) {
                if (!cache.containsKey(assetPath)) {
                    try {
                        Typeface t = Typeface.createFromAsset(c.getAssets(),
                                assetPath);
                        cache.put(assetPath, t);
                    } catch (Exception e) {
                        Log.e(TAG, "Could not get typeface '" + assetPath
                                + "' because " + e.getMessage());
                        return null;
                    }
                }
                return cache.get(assetPath);
            }
        }
    }
公共类字体{
私有静态最终字符串TAG=“Typefaces”;
私有静态最终哈希表缓存=新哈希表();
公共静态字体get(上下文c,字符串assetPath){
已同步(缓存){
如果(!cache.containsKey(assetPath)){
试一试{
Typeface t=Typeface.createFromAsset(c.getAssets(),
资产路径);
cache.put(assetPath,t);
}捕获(例外e){
Log.e(标记“无法获取字体””+assetPath
+“'因为”+e.getMessage());
返回null;
}
}
返回cache.get(assetPath);
}
}
}
现在只需调用
types.get(这里是“字体地址”)
我指的是
祝你好运

你们能发布你们的stacktrace/logcat吗?你们可能弄乱了储存字体的文件夹的位置。有一个look@TimKranen当然,当我找到它时会更新。@在“是”中,尝试了各种组合,包括“字体/xx”和“资产/fonts/xx”。在主要问题中包含了作为编辑的更新。可能的重复也尝试过,只是再次确认-无法解决问题。是的,字体文件位于assets/fonts中。这是一个修复程序。你能发日志吗?还要检查您的textView是否为nulk,布局中是否有定位textView的id?它存在吗?正在处理日志部分(如何在不造成混乱的情况下插入logcat?),但id(“hometext”)已在布局文件中重新检查,并且绝对符合要求。在主帖子上找到了logcat。是的,实际上我格外小心地进行了广泛的搜索(尽我的关键字所能-由于缺乏Android开发经验)当我为类似/精确的“Q”精心设计我的问题时,上面提到的链接由于标题中的词语选择而没有出现(我想)。另外,不熟悉阅读日志。。对此表示歉意。谢谢你所做的一切,真的帮了我的大忙。不客气!让我知道你是否可以修复它,否则,如果你愿意,我可以为你写一个示例源代码。用你的ap给我发一封电子邮件