2016-08-19 3 views
0

Ich versuche, einen Android System Service in 6.0.1 hinzuzufügen.Android Dragon Board 820 - Systemdienst hinzufügen

Ich habe ein Beispiel für das Hinzufügen von Android System Service implementiert. Das Android-System baut alles gut ohne Fehler.

Aber ich bekomme immer eine Ausnahme in Laufzeit beim Versuch, die JNI-Klasse-Methode zu registrieren.

Im folgenden Teil:

int register_android_server_xxxService(JNIEnv *env) 
{ 
    return jniRegisterNativeMethods(env, "com/android/server/xxxService", 
    method_table, NELEM(method_table)); 
}; 

Das System kann die Klasse nicht finden kann.

Das ist das Gerät Bootprotokoll:

art: Ablehnen re-init auf vorher-failed Klasse java.lang.Class

01-01 00: 58: 16,319 2806 2806 I-Kunst : 58:: 16,334 2806 2806 W SystemServer:

01-01 00 java.lang.Class re-init auf zuvor ausgefallene Klasse abweisen Uhr ist, bevor das System 1970; Einstellung auf 1970.

01-01 00: 58: 16.335 2806 2806 I SystemServer: Geben Sie den Android Systemserver ein!

01-01 00: 58: 16,355 2806 2806 I Art: Ablehnen re-init auf zuvor ausgefallene Klasse java.lang.Class

01-01 00: 58: 16,356 2806 2806 F art: art/runtime/jni_internal.cc: 497] JNI FatalError genannt: Native Registrierung kann die Klasse 'com/android/server/xxxService' nicht finden; Abbruch ...

ich einige Beispiele ausprobiert, aber immer das gleiche Ergebnis, ich bin Kompilieren Android 6.0.1 mit msm8996.

Ist es schon einmal passiert?

Bitte beraten.

Antwort

0

Ich hatte einen ähnlichen Fehler und es lag daran, die Java-Datei nicht auf die richtige Position zu setzen und den Pfad richtig zu definieren. Du kannst es versuchen.

int register_android_server_xxxService(JNIEnv *env) 
{ 
return jniRegisterNativeMethods(env, "com/android/server/xxx/xxxService", 
method_table, NELEM(method_table)); 
}; 

Und die xxxService.java Datei in den Rahmen setzen/base/services/core/java/com/android/server/xxx/xxxService.java

+0

Ich sah dieses Problem bereits. Es ist nicht das Problem. das Entwicklungsboard hat etwas Seltsames an sich. versuchte folgendes: Geräte in der Bootloop (cuz von keiner Klasse def) halten und adb sync auf frameworks/base/und walla ausführen! Gerät geladen ok und Service wenn gestartet! BUTTTTT nach dem Start scheitert alles wieder. Es gibt eine seltsame Sache, die der Boot-Prozess macht, die ich nicht verstehe. – user3429745