Не удается найти метод Query.setFilter()

#java #android #google-app-engine

# #java #Android #google-app-engine

Вопрос:

Я пишу приложение для Android, которое использует серверную часть Google App Engine (SDK версии 1.9.3), и при попытке применить фильтр к данным, полученным из серверной части хранилища данных, я получаю ошибку «нет такого метода». Я также включил все необходимые файлы jar.

Ошибка:

 FATAL EXCEPTION: main
Process: com.example.picit, PID: 30105
java.lang.NoSuchMethodError: com.google.appengine.api.datastore.Query.setFilter
at com.example.picit.Login$1.onClick(Login.java:111)
at android.view.View.performClick(View.java:4438)
at android.view.View$PerformClick.run(View.java:18422)
at android.os.Handler.handleCallback(Handler.java:733)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:136)
at android.app.ActivityThread.main(ActivityThread.java:5001)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601)
at dalvik.system.NativeStart.main(Native Method)
 

код:

 DatastoreService datastore = DatastoreServiceFactory.getDatastoreService();
Filter heightMaxFilter = new    FilterPredicate("username",FilterOperator.EQUAL,un.getText().toString());

Query q = new Query("User").setFilter(heightMaxFilter);                       
PreparedQuery pq = datastore.prepare(q);


for (Entity result : pq.asIterable()) {
    String firstName = (String) result.getProperty("firstName");
    String lastName = (String) result.getProperty("lastName");
    System.out.println(firstName   " "   lastName);
}
 

Ответ №1:

Думаю, вы хотите addFilter :

https://developers.google.com/appengine/docs/java/javadoc/com/google/appengine/api/datastore/Query?hl=en

setFilter устарел.