2011-03-10 12 views
2

Androidで提供されているサンプル同期アプリで使用されていたコードを単純にコピーしました(here)。Androidアカウント同期でクラスが見つかりませんでした。エラー...ありません。

だから、それが動作するはずです...しかし、私は自分の携帯電話にそれをインストールするときに、私が印刷された次のエラーを取得する:

03-10 14:44:54.364: ERROR/AndroidRuntime(9459): Uncaught handler: thread main exiting due to uncaught exception 
03-10 14:44:54.374: ERROR/AndroidRuntime(9459): java.lang.RuntimeException: Unable to instantiate service com.test.sync.authenticator.AuthenticationService: java.lang.ClassNotFoundException: com.test.sync.authenticator.AuthenticationService in loader [email protected] 
03-10 14:44:54.374: ERROR/AndroidRuntime(9459):  at android.app.ActivityThread.handleCreateService(ActivityThread.java:2764) 
03-10 14:44:54.374: ERROR/AndroidRuntime(9459):  at android.app.ActivityThread.access$3200(ActivityThread.java:119) 
03-10 14:44:54.374: ERROR/AndroidRuntime(9459):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1917) 
03-10 14:44:54.374: ERROR/AndroidRuntime(9459):  at android.os.Handler.dispatchMessage(Handler.java:99) 
03-10 14:44:54.374: ERROR/AndroidRuntime(9459):  at android.os.Looper.loop(Looper.java:123) 
03-10 14:44:54.374: ERROR/AndroidRuntime(9459):  at android.app.ActivityThread.main(ActivityThread.java:4363) 
03-10 14:44:54.374: ERROR/AndroidRuntime(9459):  at java.lang.reflect.Method.invokeNative(Native Method) 
03-10 14:44:54.374: ERROR/AndroidRuntime(9459):  at java.lang.reflect.Method.invoke(Method.java:521) 
03-10 14:44:54.374: ERROR/AndroidRuntime(9459):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:862) 
03-10 14:44:54.374: ERROR/AndroidRuntime(9459):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:620) 
03-10 14:44:54.374: ERROR/AndroidRuntime(9459):  at dalvik.system.NativeStart.main(Native Method) 
03-10 14:44:54.374: ERROR/AndroidRuntime(9459): Caused by: java.lang.ClassNotFoundException: com.test.sync.authenticator.AuthenticationService in loader dalvik.sy[email protected] 
03-10 14:44:54.374: ERROR/AndroidRuntime(9459):  at dalvik.system.PathClassLoader.findClass(PathClassLoader.java:243) 
03-10 14:44:54.374: ERROR/AndroidRuntime(9459):  at java.lang.ClassLoader.loadClass(ClassLoader.java:573) 
03-10 14:44:54.374: ERROR/AndroidRuntime(9459):  at java.lang.ClassLoader.loadClass(ClassLoader.java:532) 
03-10 14:44:54.374: ERROR/AndroidRuntime(9459):  at android.app.ActivityThread.handleCreateService(ActivityThread.java:2761) 
03-10 14:44:54.374: ERROR/AndroidRuntime(9459):  ... 10 more 

それは私が持っている... AuthenticatorServiceクラスは私のパッケージには見られないと言いますサービスを拡張AuthenticatorServiceクラス:

package com.test.sync; 

import android.app.Service; 
import android.content.Intent; 
import android.os.IBinder; 

public class AuthenticationService extends Service { 

     private Authenticator mAuthenticator; 

     @Override 
     public void onCreate() { 
      mAuthenticator = new Authenticator(this); 
     }  

     @Override 
     public IBinder onBind(Intent arg0) { 
      return mAuthenticator.getIBinder(); 
     } 


} 

そして、ここではマニフェストです:

<?xml version="1.0" encoding="utf-8"?> 
<!-- 
/** 
* Copyright (c) 2010, The Android Open Source Project 
* 
* Licensed under the Apache License, Version 2.0 (the "License"); 
* you may not use this file except in compliance with the License. 
* You may obtain a copy of the License at 
* 
*  http://www.apache.org/licenses/LICENSE-2.0 
* 
* Unless required by applicable law or agreed to in writing, software 
* distributed under the License is distributed on an "AS IS" BASIS, 
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 
* See the License for the specific language governing permissions and 
* limitations under the License. 
*/ 
--> 
<manifest 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    package="com.test.sync" 
    android:versionCode="1" 
    android:versionName="1.0"> 
    <uses-permission 
     android:name="android.permission.GET_ACCOUNTS" /> 
    <uses-permission 
     android:name="android.permission.USE_CREDENTIALS" /> 
    <uses-permission 
     android:name="android.permission.MANAGE_ACCOUNTS" /> 
    <uses-permission 
     android:name="android.permission.AUTHENTICATE_ACCOUNTS" /> 
    <uses-permission 
     android:name="android.permission.INTERNET" /> 
    <uses-permission 
     android:name="android.permission.WRITE_SETTINGS" /> 
    <uses-permission 
     android:name="android.permission.WRITE_SECURE_SETTINGS" /> 
    <uses-permission 
     android:name="android.permission.READ_CONTACTS" /> 
    <uses-permission 
     android:name="android.permission.WRITE_CONTACTS" /> 
    <uses-permission 
     android:name="android.permission.READ_SYNC_STATS" /> 
    <uses-permission 
     android:name="android.permission.READ_SYNC_SETTINGS" /> 
    <uses-permission 
     android:name="android.permission.WRITE_SYNC_SETTINGS" /> 

    <uses-sdk android:minSdkVersion="5" /> 

    <application 
     android:icon="@drawable/icon" 
     android:label="@string/label"> 
     <!-- The authenticator service --> 
     <service 
      android:name=".authenticator.AuthenticationService" 
      android:exported="true"> 
      <intent-filter> 
       <action 
        android:name="android.accounts.AccountAuthenticator" /> 
      </intent-filter> 
      <meta-data 
       android:name="android.accounts.AccountAuthenticator" 
       android:resource="@xml/authenticator" /> 
     </service> 
     <service 
      android:name=".syncadapter.SyncService" 
      android:exported="true"> 
      <intent-filter> 
       <action 
        android:name="android.content.SyncAdapter" /> 
      </intent-filter> 
      <meta-data 
       android:name="android.content.SyncAdapter" 
       android:resource="@xml/syncadapter" /> 
      <meta-data 
       android:name="android.provider.CONTACTS_STRUCTURE" 
       android:resource="@xml/contacts" /> 
     </service> 
     <activity 
      android:name=".authenticator.AuthenticatorActivity" 
      android:label="@string/ui_activity_title" 
      android:theme="@android:style/Theme.Dialog" 
      android:excludeFromRecents="true" 
      > 
      <!-- 
       No intent-filter here! This activity is only ever launched by 
       someone who explicitly knows the class name 
      --> 
     </activity> 
    </application> 
</manifest> 

サンプルコードから直接。誰かがアカウントを稼働させる経験がありますか?必要に応じてより多くのコードを提供できますが、Androidで提供されているサンプルコードから1行ずつ書き換えるだけです。これを実行するデバイスは2.1です。ありがとう!

+1

あなたのAndroidManifest.xmlには何がありますか? –

+0

私は今すぐ投稿に追加します。もちろん、それはもちろん、サンプルパッケージからパッケージが変更されたサンプルアプリケーションからのものです。 – JMRboosties

答えて

2

はあなたのAndroidManifest.xmlは

android:name=".authenticator.AuthenticationService" 

あなたAuthenticatorService.javaがcom.test.syncパッケージ内にあり、AuthenticationServiceを実装して宣言し、それはcom.test.sync.AuthenticationServiceにあります。

マニフェストから.authenticatorを削除する必要があります。

関連する問題