2016-08-19 4 views
0

6.0.1でAndroid System Serviceを追加しようとしています。Androidドラゴンボード820 - システムサービスの追加

Android System Serviceの追加例を実装しました。 Androidシステムは、すべてのエラーを発生させずにすべて正常に構築されます。

しかし、JNIクラスメソッドを登録しようとすると、実行時に常に例外が発生します。次の部分では

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

システムは、クラスを見つけることができません。

アート:java.lang.Classの

以前に失敗したクラス に再初期化を拒否

01-01 00:58:16.319 2806 2806 Iアート

ザ・デバイスのブートログです:58: 以前に失敗したjava.lang.Classクラス

01-01 00上の再初期化を拒否16.334 2806 2806 W SystemServer:システムクロックが 1970年以前です。

01-01 00:58:16.335 2806 2806 I SystemServer:Android システムサーバーに入力してください! 58::

01-01 00 16.355 2806 2806 Iアート:58:java.lang.Classの

01-01 00 以前に失敗したクラスに再初期化を拒否16.356 2806 2806 Fアート: art/runtime/jni_internal.cc:497] JNI FatalErrorが呼び出されました:ネイティブ 登録はクラス 'com/android/server/xxxService'を見つけることができません。私はいくつかの例を試してみましたが、常に同じ結果、私はmsm8996とAndroidの6.0.1をコンパイルしてい

中止...。

誰にでも起こったことはありますか?

お知らせください。

答えて

0

私も同様のエラーが発生しました。これは、適切な場所にJavaファイルを置いてパスを適切に定義していなかったためです。これを試すことができます。

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

やフレームワークでxxxService.javaファイルを置く/ベース/サービス/コア/ javaの/ COM /アンドロイド/サーバー/ XXX/xxxService.java

+0

私はすでにこの問題を見ました。その問題ではありません。開発ボードについて奇妙なことがあります。次のことを試してみました:デバイスをブートループに入れてください(クラスdefのないcuz)、frameworks/base /およびwallaでadb syncを実行してください!デバイスが正常にロードされ、起動されていればサービス!ブート後、すべてが再び失敗します。私は理解していないブートプロセスが行ういくつかの奇妙なことがあります。 – user3429745

関連する問題