得到了java.lang.ExceptionInInitializerError

时间:2013-03-05 17:46:12

标签: java android

我下载了一个开源应用程序的源代码。它应该工作正常。我没有更改代码中的任何内容。我在应用程序中没有错误,但是当我尝试启动它时,它只会崩溃(在模拟器和真实设备上)。

这是整个LogCat:

03-05 17:29:30.521: E/AndroidRuntime(410): FATAL EXCEPTION: main 
03-05 17:29:30.521: E/AndroidRuntime(410): java.lang.ExceptionInInitializerError
03-05 17:29:30.521: E/AndroidRuntime(410):  at com.grafian.quran.App.loadFont(App.java:73)
03-05 17:29:30.521: E/AndroidRuntime(410):  at com.grafian.quran.App.onCreate(App.java:41)
03-05 17:29:30.521: E/AndroidRuntime(410):  at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:969)
03-05 17:29:30.521: E/AndroidRuntime(410):  at android.app.ActivityThread.handleBindApplication(ActivityThread.java:3272)
03-05 17:29:30.521: E/AndroidRuntime(410):  at android.app.ActivityThread.access$2200(ActivityThread.java:117)
03-05 17:29:30.521: E/AndroidRuntime(410):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:969)
03-05 17:29:30.521: E/AndroidRuntime(410):  at android.os.Handler.dispatchMessage(Handler.java:99)
03-05 17:29:30.521: E/AndroidRuntime(410):  at android.os.Looper.loop(Looper.java:130)
03-05 17:29:30.521: E/AndroidRuntime(410):  at android.app.ActivityThread.main(ActivityThread.java:3683)
03-05 17:29:30.521: E/AndroidRuntime(410):  at java.lang.reflect.Method.invokeNative(Native Method)
03-05 17:29:30.521: E/AndroidRuntime(410):  at java.lang.reflect.Method.invoke(Method.java:507)
03-05 17:29:30.521: E/AndroidRuntime(410):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
03-05 17:29:30.521: E/AndroidRuntime(410):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
03-05 17:29:30.521: E/AndroidRuntime(410):  at dalvik.system.NativeStart.main(Native Method)
03-05 17:29:30.521: E/AndroidRuntime(410): Caused by: java.lang.UnsatisfiedLinkError: Couldn't load render: findLibrary returned null
03-05 17:29:30.521: E/AndroidRuntime(410):  at java.lang.Runtime.loadLibrary(Runtime.java:429)
03-05 17:29:30.521: E/AndroidRuntime(410):  at java.lang.System.loadLibrary(System.java:554)
03-05 17:29:30.521: E/AndroidRuntime(410):  at com.grafian.quran.text.NativeRenderer.<clinit>(NativeRenderer.java:42)

我的代码是:

public class App extends Application {

public static String PACKAGE_NAME;

final public Config config = new Config();
final public Bookmark bookmark = new Bookmark();
final public MetaData metaData = new MetaData();

final public QuranText quranText = new QuranText();
final public QuranText translation = new QuranText();
final public QuranWord quranWord = new QuranWord();

public static App app;

private int loadedFont = -1;

@Override
public void onCreate() {
    super.onCreate();

    PACKAGE_NAME = getPackageName();
    app = this;

    config.load(this);
    bookmark.load(this);

    loadFont();
}

private String getQuranTextPath() {
    return new File(getExternalFilesDir(null), "quran-uthmani").toString();
}

private String getTranslationPath() {
    return new File(getExternalFilesDir(null), config.lang).toString();
}

private String getQuranWordPath() {
    return new File(getExternalFilesDir(null), "words_en").toString();
}

public boolean loadFont() {
    if (loadedFont != config.fontArabic) {
        String name;
        switch (config.fontArabic) {
        case Config.FONT_NASKH:
            name = "naskh.otf";
            break;
        case Config.FONT_NOOREHUDA:
            name = "noorehuda.ttf";
            break;
        case Config.FONT_ME_QURAN:
            name = "me_quran.ttf";
            break;
        default:
            name = "qalam.ttf";
        }
        try {
            NativeRenderer.loadFont(getAssets().open(name));
            loadedFont = config.fontArabic;
        } catch (IOException e) {
            e.printStackTrace();
            loadedFont = -1;
            return false;
        }
    }
    return true;
}

public boolean loadAllData() {
    return loadFont()
            && quranText.load(this, getQuranTextPath())
            && translation.load(this, getTranslationPath())
            && quranWord.load(this, getQuranWordPath());
}

0 个答案:

没有答案