Я хочу разработать приложение для Android для одного сайта, в этом приложении я хочу использовать oKHttp v3
и EventBus v3
. библиотека источника событийbusbus: LINK.
Я пишу ниже коды, но при запуске приложения покажите мне ошибку FC!
okHttp_Page (основная активность) коды:Как использовать библиотеку EventBus в android
public class okHTTP_Page extends AppCompatActivity {
private RecyclerView recycler;
private okHTTP_adapter adaper;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.ok_http__page);
EventBus.getDefault().register(this);
recycler = (RecyclerView) findViewById(R.id.okHTTP_recycler);
recycler.setHasFixedSize(true);
recycler.setLayoutManager(new LinearLayoutManager(this));
okHTTP_info info = new okHTTP_info();
info.getOkHTTP_info(this);
adaper = new okHTTP_adapter(this);
recycler.setAdapter(adaper);
}
}
okHttp_info (класс AsyncTask) коды:
public class okHTTP_info {
private Context mContext;
public void getOkHTTP_info(Context context) {
mContext = context;
new getInfo().execute(serverIP.getIP());
}
private class getInfo extends AsyncTask<String, Void, String> {
EventBus bus = EventBus.getDefault();
private String ou_response;
private List<okHTTP_dataProvider> infoModels;
@Override
protected void onPreExecute() {
CustomProcessDialog.createAndShow(mContext);
infoModels = new ArrayList<>();
}
@Override
protected String doInBackground(String... params) {
OkHttpClient client = new OkHttpClient();
RequestBody requestBody = new MultipartBody.Builder()
.addFormDataPart("test", "2")
.addFormDataPart("posts", params[0])
.build();
Request request = new Request.Builder()
.url(serverIP.getIP())
.post(requestBody)
.build();
Response response;
try {
response = client.newCall(request).execute();
ou_response = response.body().string();
response.body().close();
if (ou_response != null) {
try {
JSONObject postObj = new JSONObject(ou_response);
JSONArray postsArray = postObj.getJSONArray("posts");
infoModels = new ArrayList<>();
for (int i = 0; i < postsArray.length(); i++) {
JSONObject postObject = postsArray.getJSONObject(i);
int id = postObject.getInt("id");
String title = postObject.getString("title");
Log.d("Data", "Post id: " + id);
Log.d("Data", "Post title: " + title);
//Use the title and id as per your requirement
infoModels.add(new okHTTP_dataProvider(
postObject.getString("title"),
postObject.getInt("id")));
}
} catch (JSONException e) {
e.printStackTrace();
}
}
} catch (IOException e) {
e.printStackTrace();
}
return ou_response;
}
@Override
protected void onPostExecute(String result) {
CustomProcessDialog.dissmis();
if (result != null) {
bus.post(infoModels);
}
}
}
}
ошибки LogCat:
04-16: 16 04: 34.780 20445-20445/com.tellfa.okhttpproject Х/AndroidRuntime: неустранимое: Основная java.lang.RuntimeException: Невозможно запустить активность ComponentInfo {com.tellfa.okhttpproject/com.tellfa.okhttpproject.Activities.okHTTP_Page}: org.greenrobot.eventbus.EventBusException: Абонент класс com.tellfa.okhttpproject.Activities.okHTTP_Page и его супер-классы не имеют общих методов с аннотацией @Subscribe в android.app.ActivityThread.performLaunchActivity (ActivityThread.java:2204) на android.app.ActivityThread. handleLaunchActivity (ActivityThread.java:2254) at android.app.ActivityThread.access $ 600 (ActivityThread.java:141) в android.app.ActivityThread $ H.handleMessage (ActivityThread.java : 1234) на android.os.Handler.dispatchMessage (Handler.java:99) на android.os.Looper.loop (Looper.java:137) на android.app.ActivityThread.main (ActivityThread.java:5069) в java.lang.reflect.Method.invokeNative (собственный метод) в java.lang.reflect.Method.invoke (Method.java:511) в com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run (ZygoteInit.java:793) at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:560) at dalvik.system.NativeStart.main (родной метод) Вызвано: org.greenrobot.eventbus.EventBusException : Класс подписчика com.tellfa.okhttpproject.Activities.okHTTP_Page и его суперклассы не имеют общедоступных методов с @Subs cribe аннотацию на org.greenrobot.eventbus.SubscriberMethodFinder.findSubscriberMethods (SubscriberMethodFinder.java:67) в org.greenrobot.eventbus.EventBus.register (EventBus.java:136) при com.tellfa.okhttpproject.Activities.okHTTP_Page. OnCreate (okHTTP_Page.java:23) на android.app.Activity.performCreate (Activity.java:5104) при android.app.Instrumentation.callActivityOnCreate (Instrumentation.java:1092) на android.app.ActivityThread.performLaunchActivity (ActivityThread.java:2148) на android.app.ActivityThread.handleLaunchActivity (ActivityThread.java:2254) в android.app.ActivityThread.access $ 600 (ActivityThread.java:141) при android.app.Activ ityThread $ H.handleMessage (ActivityThread.java:1234) на android.os.Handler.dispatchMessage (Handler.java:99) на android.os.Looper.loop (Looper.java:137) на android.app. ActivityThread.main (ActivityThread.java:5069) в java.lang.reflect.Method.invokeNative (собственный метод) в java.lang.reflect.Method.invoke (Method.java:511) в com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run (ZygoteInit.java:793) at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:560) на dalvik.system.NativeStart.main (родной метод)
Глядя на логарифм, * ts супер классы не имеют общедоступных методов с аннотацией @Subscribe на * Вы, очевидно, не читали документацию для события Автобус, вы должны добавить аннотацию к своей деятельности. – t0mm13b