Ich habe jeden SO Post in Bezug auf die Verwendung von Schriftarten in Android gelesen und ich kann immer noch nicht meins zur Arbeit. Ich erhalte die folgende Ausnahme:Kann nicht Schriftart in Android verwenden
java.lang.RuntimeException: native typeface cannot be made
mein Code Hier ist (diese Klasse und statische Methode aus here genommen wird):
public class SafeTypefaces {
private static final Hashtable<String, Typeface> cache = new Hashtable<String, Typeface>();
public static Typeface get(Context c) {
final String assetPath = "fonts/robotobold.ttf";
synchronized (cache) {
if (!cache.containsKey(assetPath)) {
try {
AssetManager assetManager = c.getAssets();
Typeface t = Typeface.createFromAsset(assetManager, assetPath); //Throws exception on this line!
cache.put(assetPath, t);
} catch (Exception e) {
L.p("Could not get typeface '" + assetPath + "' because " + e.getMessage());
return null;
}
}
return cache.get(assetPath);
}
}
}
Die Schrift ist im assets/fonts
Ordner:
(das ist immer noch Eclipse. Ich weiß, ich weiß).
Dinge, die ich habe versucht:
- Ich habe versucht, die Schrift an die Wurzel des
assets
Ordner verschieben und dieassetPath
aktualisieren. - Ich überprüfte Ordner und Dateiberechtigungen.
- Ich habe versucht, den Anwendungskontext anstelle des Aktivitätskontextes zu verwenden, den ich bekomme.
- Ich habe versucht, verschiedene Schriftart-Dateien (eine per E-Mail senden, eine andere aus dem Internet heruntergeladen).
"Möglicherweise nicht mit Gradle + AS" - korrekt. Assets in Bibliotheksmodulen in Android Studio oder anderen Gradle-basierten Android-Builds sind im endgültigen APK enthalten. – CommonsWare