Почему эта функция не работает во время выполнения? - PullRequest
0 голосов
/ 27 февраля 2020

У меня есть следующий фрагмент кода, почему он не работает во время выполнения?

Код из MainActivity:

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.mainuilayout_fragment);

    mPrefs = PreferenceManager.getDefaultSharedPreferences(this);
    home_directory = mPrefs.getString("home_directory", home_directory);
    JNIdc.config(home_directory);

Это ошибка, которую я получаю

2020-02-27 13:08:35.997 19527-19527/? E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.android.emulator, PID: 19527
    java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader[DexPathList[[zip file "/data``/app/com.android.emulator-DSqX_PGjDkqsKqoajwOoYw==/base.apk"],nativeLibraryDirectories=[/data/app/com.android.emulator-DSqX_PGjDkqsKqoajwOoYw==/lib/arm64, /system/lib64, /vendor/lib64]]] couldn't find "libdc.so"
        at java.lang.Runtime.loadLibrary0(Runtime.java:1011)
        at java.lang.System.loadLibrary(System.java:1657)
        at com.android.emulator.JNIdc.<clinit>(JNIdc.java:6)
        at com.android.emulator.JNIdc.config(Native Method)
        at com.android.emulator.MainActivity.onCreate(MainActivity.java:67)
        at android.app.Activity.performCreate(Activity.java:7028)
        at android.app.Activity.performCreate(Activity.java:7019)
        at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1215)
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2808)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2933)
        at android.app.ActivityThread.-wrap11(Unknown Source:0)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1627)
        at android.os.Handler.dispatchMessage(Handler.java:106)
        at android.os.Looper.loop(Looper.java:175)
        at android.app.ActivityThread.main(ActivityThread.java:6722)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:810)

Почему я получаю эту ошибку?

1 Ответ

0 голосов
/ 06 марта 2020

Я считаю, что libd c .so отсутствует. Сначала его нужно добавить, прежде чем он распознает JNId c .config. Я получаю сообщение об ошибке при попытке найти строку для android .mk перед запуском ndk-build. Там написано

/home/user/Desktop/project/app/shell/android/jni/Android.mk:21: /home/user/Desktop/project/app/shell/android/jni/../../core/core.mk: No such file or directory

make: *** Нет правил для создания цели '/home/user/Desktop/project/app/shell/android/jni/../../core/core.mk ». Стоп.

...