执行定期同步时出错

dai*_*dai 6 android synchronization

我正在尝试使用同步适配器执行句点同步.它可以手动同步,但不能定期同步.这是我从logcat获得的唯一东西

Could not find class 'android.content.SyncRequest$Builder', referenced from method 
com.example.user.sunshine.sync.SunshineSyncAdapter.configurePeriodicSync
Run Code Online (Sandbox Code Playgroud)

以下是我的代码:

 public static void configurePeriodicSync(Context context, int syncInterval, int flexTime) {

    Account account = getSyncAccount(context);
    String authority = context.getString(R.string.content_authority);
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
        SyncRequest request = new SyncRequest.Builder().
                syncPeriodic(syncInterval, flexTime).
                setSyncAdapter(account, authority).build();
        ContentResolver.requestSync(request);
    } else {
        ContentResolver.addPeriodicSync(account,
                authority, new Bundle(), syncInterval);
    }
}
Run Code Online (Sandbox Code Playgroud)

有谁知道为什么会发生这种情况以及我应该如何解决它?

Row*_*ezi -2

如果您在未运行 KitKat 及更高版本的设备中进行测试,则会出现此错误。我敢打赌,它在 Kitkat 及以上版本中没有问题,因为适当的 android 类将被编译到 apk 中。

我建议您不要担心,如果您在较低的设备上进行测试,因为您的代码的这一部分:

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
        SyncRequest request = new SyncRequest.Builder().
                syncPeriodic(syncInterval, flexTime).
                setSyncAdapter(account, authority).build();
        ContentResolver.requestSync(request);
    } else {
        ContentResolver.addPeriodicSync(account,
                authority, new Bundle(), syncInterval);
    }
Run Code Online (Sandbox Code Playgroud)

另请尝试检查构建库中 android 4.4.* 的导出按钮