0

Так что я неоднократно проверял все остальные темы в этом разделе, но ни один из них не дал решения. Вот код:Android findViewById() возвращает null для пользовательского представления

XML-

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    tools:context=".MainActivity"> 

    <android.support.v7.widget.RecyclerView 
     android:id="@+id/recyclerView" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" /> 

    <com.turingtechnologies.materialscrollbar.DragScrollBar 
     android:layout_width="wrap_content" 
     android:id="@+id/dragScrollBar" 
     android:layout_height="match_parent"/> 

</RelativeLayout> 

Деятельность

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    //Stuff 

    recyclerView = (RecylerView)findViewById(R.id.recyclerView); //I've verified that this works properly. 
    DragScrollBar dragScrollBar = (DragScrollBar)findViewById(R.id.dragScrollBar); 
    if (dragScrollBar == null) { Log.d("d", "fail"); } 
    dragScrollBar.bindRecyclerView(recyclerView); 
} 

DragScrollBar.java

public class DragScrollBar extends MaterialScrollBar<DragScrollBar>{ 

    public DragScrollBar(Context context, AttributeSet attrs){ 
     super(context, attrs); 
    } 
} 

MaterialScrollBar.java

abstract class MaterialScrollBar<T> extends RelativeLayout { 

    MaterialScrollBar(Context context, AttributeSet attrs){ 
     super(context, attrs); 
     initialise(context); 
    } 

//Stuff 

} 

Он правильно рисует на предварительном просмотре, но возвращает nullPointerException когда dragScrollBar используется и «сбой» выводится на консоль.

Я пропустил другие обычные конструкторы, но при включении они не имеют никакого значения.

EDIT: Вот трассировки стека

fail 
Shutting down VM 
FATAL EXCEPTION: main 
Process: com.turingtechnologies.materialscrollbardemo, PID: 31890                        java.lang.RuntimeException: Unable to start activity ComponentInfo{com.turingtechnologies.materialscrollbardemo/com.turingtechnologies.materialscrollbardemo.MainActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.Object com.turingtechnologies.materialscrollbar.DragScrollBar.bindRecyclerView(android.support.v7.widget.RecyclerView)' on a null object reference at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2416) 
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476) 
at android.app.ActivityThread.-wrap11(ActivityThread.java) 
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344) 
at android.os.Handler.dispatchMessage(Handler.java:102) 
at android.os.Looper.loop(Looper.java:148) 
at android.app.ActivityThread.main(ActivityThread.java:5417) 
at java.lang.reflect.Method.invoke(Native Method) 
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) 

Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.Object com.turingtechnologies.materialscrollbar.DragScrollBar.bindRecyclerView(android.support.v7.widget.RecyclerView)' on a null object reference 
at com.turingtechnologies.materialscrollbardemo.MainActivity.onCreate(MainActivity.java:26) 
at android.app.Activity.performCreate(Activity.java:6251) 
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1107) 
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2369) 
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476)  
at android.app.ActivityThread.-wrap11(ActivityThread.java)  
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344)  
at android.os.Handler.dispatchMessage(Handler.java:102)  
at android.os.Looper.loop(Looper.java:148)  
at android.app.ActivityThread.main(ActivityThread.java:5417)  
at java.lang.reflect.Method.invoke(Native Method)  
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)  
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) 

+2

is * xml * 'activity_main.xml'? – Blackbelt

+0

post stacktrace и более ранние ошибки, если они есть – njzk2

+0

@ Blackbelt Да, это –

ответ

0

я запустил SETID() внутри initalise как часть более ранней схемы и не думал, чтобы удалить его во время рефакторинга.