firebase / FirebaseUI-Android

Optimized UI components for Firebase
https://firebaseopensource.com/projects/firebase/firebaseui-android/
Apache License 2.0
4.63k stars 1.83k forks source link

“No such Method error” on firebase recyclerview #865

Closed Suhailakl closed 7 years ago

Suhailakl commented 7 years ago

I created a project with RecyclerView on a fragment activity. But when I executing this project shows an error like this.

java.lang.NoSuchMethodError: android.os.Binder#execTransact(int,int,int,int)#exact at de.robv.android.xposed.XposedHelpers.findMethodExact(XposedHelpers.java:339) at de.robv.android.xposed.XposedHelpers.findAndHookMethod(XposedHelpers.java:176) at de.robv.android.xposed.XposedHelpers.findAndHookMethod(XposedHelpers.java:251) at com.phoneinfo.changerpro.hooks.g.a(Unknown Source) at com.phoneinfo.changerpro.hooks.MainHook.handleLoadPackage(Unknown Source) at de.robv.android.xposed.IXposedHookLoadPackage$Wrapper.handleLoadPackage(IXposedHookLoadPackage.java:34) at de.robv.android.xposed.callbacks.XC_LoadPackage.call(XC_LoadPackage.java:61) at de.robv.android.xposed.callbacks.XCallback.callAll(XCallback.java:106) at de.robv.android.xposed.XposedBridge$1.beforeHookedMethod(XposedBridge.java:234) at de.robv.android.xposed.XposedBridge.handleHookedMethod(XposedBridge.java:1550) at android.app.ActivityThread.handleBindApplication() at android.app.ActivityThread.access$1600(ActivityThread.java:154) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1378) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:135) at android.app.ActivityThread.main(ActivityThread.java:5296) at java.lang.reflect.Method.invoke(Native Method) at java.lang.reflect.Method.invoke(Method.java:372) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:912) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:707) at de.robv.android.xposed.XposedBridge.main(XposedBridge.java:163)
``

There had not any error at the time of RecyclerView with values from app itself. But when I tried to retrieve values from Firebase to app, then the above error occurs and activity get close.What can be done to solve this problem?

My code

```java
public class DocterList extends Fragment {
    private DatabaseReference dataref;
    private RecyclerView recyclerView;
    private List<Doc> result;
    private DocViewHolder adapter;

    @Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        View v = inflater.inflate(R.layout.activity_docter_list, container, false);
        Firebase.setAndroidContext(getActivity());
        dataref = FirebaseDatabase.getInstance().getReference().child("Docters");
        result = new ArrayList<>();
        recyclerView = (RecyclerView) v.findViewById(R.id.docter_list);
        recyclerView.setHasFixedSize(true);
        LinearLayoutManager llm = new LinearLayoutManager(getActivity());
        llm.setOrientation(LinearLayoutManager.VERTICAL);
        recyclerView.setLayoutManager(llm);
        FirebaseRecyclerAdapter<Doc,DocViewHolder> adapter=new FirebaseRecyclerAdapter<Doc, DocViewHolder>(
                Doc.class,
                R.layout.view_docter,
                DocViewHolder.class,
                dataref
        ) {
            @Override
            protected void populateViewHolder(DocViewHolder viewHolder, Doc model, int position) {
               viewHolder.setName(model.getName());
                viewHolder.setCity(model.getCity());

            }
        };
        recyclerView.setAdapter(adapter);
        return v;
    }
    public static class DocViewHolder extends RecyclerView.ViewHolder{
        TextView textName,textPlace;
        public DocViewHolder(View itemView) {
            super(itemView);
            textName= (TextView) itemView.findViewById(R.id.t1);
            textPlace= (TextView) itemView.findViewById(R.id.t2);
        }

        public void setName(String name) {
            textName.setText(name);
        }

        public void setCity(String city) {
            textPlace.setText(city);
        }
    }
}
public class Doc {
    String Name,City;

    public Doc() {
    }

    public String getCity() {

        return City;
    }

    public void setCity(String city) {
        City = city;
    }

    public String getName() {
        return Name;
    }

    public void setName(String name) {
        Name = name;
    }

    public Doc(String name, String city) {

        Name = name;
        City = city;
    }
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
    exclude group: 'com.android.support', module: 'support-annotations'
})
compile 'com.android.support:appcompat-v7:25.3.1'
compile 'com.android.support:design:25.3.1'
testCompile 'junit:junit:4.12'
compile 'com.github.stfalcon:smsverifycatcher:0.3.1'
compile 'com.github.MdFarhanRaja:SearchableSpinner:1.2'
compile 'com.google.firebase:firebase-database:11.0.4'
compile 'com.google.firebase:firebase-core:11.0.4'
compile 'com.google.firebase:firebase-storage:11.0.4'
compile 'com.google.firebase:firebase-crash:11.0.4'
compile 'com.google.firebase:firebase-auth:11.0.4'
compile 'com.google.firebase:firebase-messaging:11.0.4'
compile 'com.firebase:firebase-client-android:2.3.1'
compile 'com.android.support:support-v4:25.3.1'
compile 'com.firebaseui:firebase-ui:0.4.3'
compile 'com.android.support:recyclerview-v7:25.3.1'
}
apply plugin: 'com.google.gms.google-services'
samtstern commented 7 years ago

@Suhailakl if you look in the stack trace there are a lot of mentions of de.robv.android.xposed.XposedHelpers.findMethodExact. This implies that you're on a rooted device running Xposed, which can cause all kinds of issues that we're not able to debug.

I am going to close this since we can't support modified operating systems (we just don't have enough time to test these kinds of scenarios). If you reproduce this issue on an emulator or other "normal" Android device please re-open the issue and we can discuss.

samtstern commented 7 years ago

It's also worth noting that you're using FirebaseUI com.firebaseui:firebase-ui:0.4.3 which is crazy old! Try upgrading to a recent version, 2.0 or higher.