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 [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提供的示例代碼中逐行重寫即可。運行這個的設備在2.1上。謝謝!
你的AndroidManifest.xml中有什麼? –
我現在將它添加到帖子中。它直接來自示例應用程序,當然包也會相應更改。 – JMRboosties