首页 \ 问答 \ Ruby`requiret':无法加载这样的文件(LoadError)(Ruby `require': cannot load such file (LoadError))

Ruby`requiret':无法加载这样的文件(LoadError)(Ruby `require': cannot load such file (LoadError))

我有一个目录结构如下所示:

 - lib
   - yp-crawler (directory)
      - file-a.rb
      - file-b.rb
      - file-c.rb
   - yp-crawler.rb

我的lib/yp-crawler.rb文件如下所示:

require "yp-crawler/file-c"
require "yp-crawler/file-b"
require "yp-crawler/file-a"

module YPCrawler
end

当我尝试通过执行以下操作在命令行运行我的文件时:

ruby lib/yp-crawler.rb

我得到这个错误:

`require': cannot load such file -- yp-crawler/file-c (LoadError)
    from .rvm/rubies/ruby-2.3.1/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in `require'
    from lib/yp-crawler.rb:1:in `<main>'

什么可能导致这个?


I have a directory structure that looks like this:

 - lib
   - yp-crawler (directory)
      - file-a.rb
      - file-b.rb
      - file-c.rb
   - yp-crawler.rb

My lib/yp-crawler.rb file looks like this:

require "yp-crawler/file-c"
require "yp-crawler/file-b"
require "yp-crawler/file-a"

module YPCrawler
end

When I try to run my file at the command line by doing this:

ruby lib/yp-crawler.rb

I get this error:

`require': cannot load such file -- yp-crawler/file-c (LoadError)
    from .rvm/rubies/ruby-2.3.1/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in `require'
    from lib/yp-crawler.rb:1:in `<main>'

What could be causing this?


原文:https://stackoverflow.com/questions/39747140
更新时间:2023-03-19 15:03

最满意答案

试试这个代码,这只是一个由Recycler Adapter支持的List Activity,包含List Activity的XML,Card Layout XML文件

   public class ListActivity extends AppCompatActivity {

   DBHelper helper;
  static List<DBModel>dbList;
   RecyclerView mRecyclerView;
   private static RecyclerView.Adapter mAdapter;
    private RecyclerView.LayoutManager mLayoutManager;

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

    addListenerOnButtonAdd();
    TextView tvNoData = (TextView)findViewById(R.id.tvNoData);

    setTitle("");// This sets the title of the toolbar
    Toolbar topToolBar = (Toolbar)findViewById(R.id.toolbar);
    setSupportActionBar(topToolBar);
    //topToolBar.setLogo(R.drawable.keyss);// See Notes in MainActivity

    setRequestedOrientation( ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);


    helper = new DBHelper(this);
    dbList = new ArrayList<>();
    dbList = helper.getDataFromDB();

    mRecyclerView = (RecyclerView)findViewById(R.id.recycleview);
    mRecyclerView.setHasFixedSize(true);

    // use a linear layout manager
    mLayoutManager = new LinearLayoutManager(this);
    mRecyclerView.setLayoutManager(mLayoutManager);

    // Code below defines the adapter
    mAdapter = new RecyclerAdapter(this,dbList);
    mRecyclerView.setAdapter(mAdapter);

    int sz = dbList.size();
    if(sz == 0){
        tvNoData.setVisibility(View.VISIBLE);
        tvNoData.setText("No Data");
    }
  }

  // This method is called from DetailsActivity and notifies Recycler View 
  that the DB was changed

   of DB and Recycler View
   public static void removeListRow(int position) {
    dbList.remove(position);
    mAdapter.notifyItemRemoved(position);
    mAdapter.notifyItemRangeChanged(position, dbList.size());
   }

    /* this BUTTON is on the ToolBar click to ADD new record */
    private void addListenerOnButtonAdd() {
    // Navigate to DetailsActivity to ADD new DATA
    Toolbar tb = (Toolbar) findViewById( R.id.toolbar );
    setSupportActionBar( tb );

    tb.findViewById( R.id.btnAdd ).setOnClickListener( new 
    View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Intent intentSP = new Intent(ListActivity.this, 
   DetailsActivity.class );
            Bundle extras = new Bundle();
            extras.putString("FROM_LIST_ACTIVITY","true" );
            intentSP.putExtras(extras);
            startActivity( intentSP );
        }
    } );
 }

public void onBackPressed(){
    Intent intent = new Intent( ListActivity.this, MainActivity.class );
    startActivity( intent );
 }
 }


   <?xml version="1.0" encoding="utf-8"?>
  <LinearLayout
  xmlns:android="http://schemas.android.com/apk/res/android"
   xmlns:tools="http://schemas.android.com/tools"
   android:id="@+id/activity_list"
   android:layout_width="match_parent"
   android:layout_height="match_parent"
  android:background="@color/color_lightGray"
   android:orientation="vertical"
   tools:context="com.searchdb.ListActivity">

    <android.support.v7.widget.Toolbar
    android:id="@+id/toolbar"
    android:minHeight="?attr/actionBarSize"
    android:background="@color/color_darkGray"
    android:layout_width="match_parent"
    android:layout_height="64dp">

    <ImageView
        android:id="@+id/imageTB"
        android:layout_width="70dp"
        android:layout_height="wrap_content"
        android:paddingBottom="2dp"
        android:paddingLeft="2dp"
        android:paddingRight="2dp"
        android:paddingTop="4dp"
        android:src="@drawable/keyss" />

    <TextView
        android:text="@string/list_view"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBottom="@+id/toolbar"
        android:layout_alignParentStart="true"
        android:layout_marginStart="30dp"
        android:layout_marginBottom="20dp"
        android:id="@+id/tvLA"
        android:textStyle="bold"
        android:textColor="@color/color_White"
        android:textSize="22sp" />

    <Button
        android:text="@string/add"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/btnAdd"
        android:layout_marginLeft="100dp"
        android:textSize="18sp"
        android:textStyle="bold"
        android:focusable="false"
        android:textColor="@color/color_White"
        android:background="@color/color_Transparent"/>

  </android.support.v7.widget.Toolbar>

  <LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal">

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

</LinearLayout>

<LinearLayout
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <TextView
        android:text="TextView"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/tvNoData"
        android:gravity="center"
        android:layout_marginTop="240dp"
        android:visibility="invisible"
        android:textAllCaps="true"
        android:textStyle="bold"
        android:textSize="30sp"
        android:textColor="@color/color_Red" />
 </LinearLayout>

  </LinearLayout>

  public class RecyclerAdapter extends 
  RecyclerView.Adapter<RecyclerAdapter.ViewHolder> {

  static List<DBModel> dbList;
  static private Context context;
   int sz;

   RecyclerAdapter(Context context, List<DBModel> dbList) {

    RecyclerAdapter.dbList = new ArrayList<>();
    RecyclerAdapter.context = context;
    RecyclerAdapter.dbList = dbList;
 }

 @Override
 public RecyclerAdapter.ViewHolder onCreateViewHolder(ViewGroup parent, int 
 viewType) {

    View itemLayoutView = 
 LayoutInflater.from(parent.getContext()).inflate(R.layout.item_row, null);
    // create ViewHolder
    ViewHolder viewHolder = new ViewHolder(itemLayoutView);

    return viewHolder;
}

@Override
public void onBindViewHolder(RecyclerAdapter.ViewHolder holder, int 
 position) {
    holder.rowid.setText(String.valueOf(dbList.get(position).getRowid()));
    holder.station.setText(dbList.get(position).getStation_Name());
    System.out.println("RecyclerAdapter BindViewHolder FIRST position 
 "+position);
}

 @Override
 public int getItemCount() {
    return dbList.size();
 }

 public class ViewHolder extends RecyclerView.ViewHolder implements 
 View.OnClickListener {

    public TextView station, rowid;

    public ViewHolder(View itemLayoutView) {
        super(itemLayoutView);

        rowid = (TextView) itemLayoutView.findViewById(R.id.rvROWID);
        station = (TextView) itemLayoutView.findViewById(R.id.rvSTATION);
        // Attach a click listener to the entire row view
        itemLayoutView.setOnClickListener(this);

    }

   @Override 
    public void onClick(View v) {

       Intent intentN = new Intent(context, DetailsActivity.class);
       Bundle extras = new Bundle();
       extras.putInt("POSITION", getAdapterPosition());
       extras.putString("FROM_LIST_ACTIVITY", "false");
       intentN.putExtras(extras);
       context.startActivity(intentN);
   }
   }
   }

  <?xml version="1.0" encoding="utf-8"?>
 <android.support.v7.widget.CardView 
  xmlns:android="http://schemas.android.com/apk/res/android"
  xmlns:card_view="http://schemas.android.com/apk/res-auto"
  android:layout_width="match_parent"
  android:layout_height="match_parent"
  android:layout_margin="5dp"
  android:orientation="horizontal"
  card_view:cardCornerRadius="5dp"
  card_view:cardUseCompatPadding="true">

   <RelativeLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@color/color_White">

    <TextView
        android:id="@+id/rvROWID"
        android:layout_width="wrap_content"
        android:layout_height="50dp"
        android:gravity="left|center_vertical"
        android:padding="10dp"
        android:textAlignment="center"
        android:text="Position ID"
        android:textColor="@color/color_Black"
        android:layout_marginLeft="10dp"
        android:textStyle="bold"
        android:textSize="16sp"/>

    <TextView
        android:id="@+id/rvSTATION"
        android:layout_width="fill_parent"
        android:layout_height="50dp"
        android:padding="10dp"
        android:gravity="right|center_vertical"
        android:text="Station"
        android:layout_marginLeft="10dp"
        android:textStyle="bold"
        android:textSize="16sp"
        android:textColor="@color/color_Black" />

   </RelativeLayout>

  </android.support.v7.widget.CardView>

Try this code this is just a List Activity that is backed by a Recycler Adapter the XML for the List Activity is included and the Card Layout XML file

   public class ListActivity extends AppCompatActivity {

   DBHelper helper;
  static List<DBModel>dbList;
   RecyclerView mRecyclerView;
   private static RecyclerView.Adapter mAdapter;
    private RecyclerView.LayoutManager mLayoutManager;

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

    addListenerOnButtonAdd();
    TextView tvNoData = (TextView)findViewById(R.id.tvNoData);

    setTitle("");// This sets the title of the toolbar
    Toolbar topToolBar = (Toolbar)findViewById(R.id.toolbar);
    setSupportActionBar(topToolBar);
    //topToolBar.setLogo(R.drawable.keyss);// See Notes in MainActivity

    setRequestedOrientation( ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);


    helper = new DBHelper(this);
    dbList = new ArrayList<>();
    dbList = helper.getDataFromDB();

    mRecyclerView = (RecyclerView)findViewById(R.id.recycleview);
    mRecyclerView.setHasFixedSize(true);

    // use a linear layout manager
    mLayoutManager = new LinearLayoutManager(this);
    mRecyclerView.setLayoutManager(mLayoutManager);

    // Code below defines the adapter
    mAdapter = new RecyclerAdapter(this,dbList);
    mRecyclerView.setAdapter(mAdapter);

    int sz = dbList.size();
    if(sz == 0){
        tvNoData.setVisibility(View.VISIBLE);
        tvNoData.setText("No Data");
    }
  }

  // This method is called from DetailsActivity and notifies Recycler View 
  that the DB was changed

   of DB and Recycler View
   public static void removeListRow(int position) {
    dbList.remove(position);
    mAdapter.notifyItemRemoved(position);
    mAdapter.notifyItemRangeChanged(position, dbList.size());
   }

    /* this BUTTON is on the ToolBar click to ADD new record */
    private void addListenerOnButtonAdd() {
    // Navigate to DetailsActivity to ADD new DATA
    Toolbar tb = (Toolbar) findViewById( R.id.toolbar );
    setSupportActionBar( tb );

    tb.findViewById( R.id.btnAdd ).setOnClickListener( new 
    View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Intent intentSP = new Intent(ListActivity.this, 
   DetailsActivity.class );
            Bundle extras = new Bundle();
            extras.putString("FROM_LIST_ACTIVITY","true" );
            intentSP.putExtras(extras);
            startActivity( intentSP );
        }
    } );
 }

public void onBackPressed(){
    Intent intent = new Intent( ListActivity.this, MainActivity.class );
    startActivity( intent );
 }
 }


   <?xml version="1.0" encoding="utf-8"?>
  <LinearLayout
  xmlns:android="http://schemas.android.com/apk/res/android"
   xmlns:tools="http://schemas.android.com/tools"
   android:id="@+id/activity_list"
   android:layout_width="match_parent"
   android:layout_height="match_parent"
  android:background="@color/color_lightGray"
   android:orientation="vertical"
   tools:context="com.searchdb.ListActivity">

    <android.support.v7.widget.Toolbar
    android:id="@+id/toolbar"
    android:minHeight="?attr/actionBarSize"
    android:background="@color/color_darkGray"
    android:layout_width="match_parent"
    android:layout_height="64dp">

    <ImageView
        android:id="@+id/imageTB"
        android:layout_width="70dp"
        android:layout_height="wrap_content"
        android:paddingBottom="2dp"
        android:paddingLeft="2dp"
        android:paddingRight="2dp"
        android:paddingTop="4dp"
        android:src="@drawable/keyss" />

    <TextView
        android:text="@string/list_view"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBottom="@+id/toolbar"
        android:layout_alignParentStart="true"
        android:layout_marginStart="30dp"
        android:layout_marginBottom="20dp"
        android:id="@+id/tvLA"
        android:textStyle="bold"
        android:textColor="@color/color_White"
        android:textSize="22sp" />

    <Button
        android:text="@string/add"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/btnAdd"
        android:layout_marginLeft="100dp"
        android:textSize="18sp"
        android:textStyle="bold"
        android:focusable="false"
        android:textColor="@color/color_White"
        android:background="@color/color_Transparent"/>

  </android.support.v7.widget.Toolbar>

  <LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal">

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

</LinearLayout>

<LinearLayout
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <TextView
        android:text="TextView"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/tvNoData"
        android:gravity="center"
        android:layout_marginTop="240dp"
        android:visibility="invisible"
        android:textAllCaps="true"
        android:textStyle="bold"
        android:textSize="30sp"
        android:textColor="@color/color_Red" />
 </LinearLayout>

  </LinearLayout>

  public class RecyclerAdapter extends 
  RecyclerView.Adapter<RecyclerAdapter.ViewHolder> {

  static List<DBModel> dbList;
  static private Context context;
   int sz;

   RecyclerAdapter(Context context, List<DBModel> dbList) {

    RecyclerAdapter.dbList = new ArrayList<>();
    RecyclerAdapter.context = context;
    RecyclerAdapter.dbList = dbList;
 }

 @Override
 public RecyclerAdapter.ViewHolder onCreateViewHolder(ViewGroup parent, int 
 viewType) {

    View itemLayoutView = 
 LayoutInflater.from(parent.getContext()).inflate(R.layout.item_row, null);
    // create ViewHolder
    ViewHolder viewHolder = new ViewHolder(itemLayoutView);

    return viewHolder;
}

@Override
public void onBindViewHolder(RecyclerAdapter.ViewHolder holder, int 
 position) {
    holder.rowid.setText(String.valueOf(dbList.get(position).getRowid()));
    holder.station.setText(dbList.get(position).getStation_Name());
    System.out.println("RecyclerAdapter BindViewHolder FIRST position 
 "+position);
}

 @Override
 public int getItemCount() {
    return dbList.size();
 }

 public class ViewHolder extends RecyclerView.ViewHolder implements 
 View.OnClickListener {

    public TextView station, rowid;

    public ViewHolder(View itemLayoutView) {
        super(itemLayoutView);

        rowid = (TextView) itemLayoutView.findViewById(R.id.rvROWID);
        station = (TextView) itemLayoutView.findViewById(R.id.rvSTATION);
        // Attach a click listener to the entire row view
        itemLayoutView.setOnClickListener(this);

    }

   @Override 
    public void onClick(View v) {

       Intent intentN = new Intent(context, DetailsActivity.class);
       Bundle extras = new Bundle();
       extras.putInt("POSITION", getAdapterPosition());
       extras.putString("FROM_LIST_ACTIVITY", "false");
       intentN.putExtras(extras);
       context.startActivity(intentN);
   }
   }
   }

  <?xml version="1.0" encoding="utf-8"?>
 <android.support.v7.widget.CardView 
  xmlns:android="http://schemas.android.com/apk/res/android"
  xmlns:card_view="http://schemas.android.com/apk/res-auto"
  android:layout_width="match_parent"
  android:layout_height="match_parent"
  android:layout_margin="5dp"
  android:orientation="horizontal"
  card_view:cardCornerRadius="5dp"
  card_view:cardUseCompatPadding="true">

   <RelativeLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@color/color_White">

    <TextView
        android:id="@+id/rvROWID"
        android:layout_width="wrap_content"
        android:layout_height="50dp"
        android:gravity="left|center_vertical"
        android:padding="10dp"
        android:textAlignment="center"
        android:text="Position ID"
        android:textColor="@color/color_Black"
        android:layout_marginLeft="10dp"
        android:textStyle="bold"
        android:textSize="16sp"/>

    <TextView
        android:id="@+id/rvSTATION"
        android:layout_width="fill_parent"
        android:layout_height="50dp"
        android:padding="10dp"
        android:gravity="right|center_vertical"
        android:text="Station"
        android:layout_marginLeft="10dp"
        android:textStyle="bold"
        android:textSize="16sp"
        android:textColor="@color/color_Black" />

   </RelativeLayout>

  </android.support.v7.widget.CardView>

相关问答

更多

相关文章

更多

最新问答

更多
  • 您如何使用git diff文件,并将其应用于同一存储库的副本的本地分支?(How do you take a git diff file, and apply it to a local branch that is a copy of the same repository?)
  • 将长浮点值剪切为2个小数点并复制到字符数组(Cut Long Float Value to 2 decimal points and copy to Character Array)
  • OctoberCMS侧边栏不呈现(OctoberCMS Sidebar not rendering)
  • 页面加载后对象是否有资格进行垃圾回收?(Are objects eligible for garbage collection after the page loads?)
  • codeigniter中的语言不能按预期工作(language in codeigniter doesn' t work as expected)
  • 在计算机拍照在哪里进入
  • 使用cin.get()从c ++中的输入流中丢弃不需要的字符(Using cin.get() to discard unwanted characters from the input stream in c++)
  • No for循环将在for循环中运行。(No for loop will run inside for loop. Testing for primes)
  • 单页应用程序:页面重新加载(Single Page Application: page reload)
  • 在循环中选择具有相似模式的列名称(Selecting Column Name With Similar Pattern in a Loop)
  • System.StackOverflow错误(System.StackOverflow error)
  • KnockoutJS未在嵌套模板上应用beforeRemove和afterAdd(KnockoutJS not applying beforeRemove and afterAdd on nested templates)
  • 散列包括方法和/或嵌套属性(Hash include methods and/or nested attributes)
  • android - 如何避免使用Samsung RFS文件系统延迟/冻结?(android - how to avoid lag/freezes with Samsung RFS filesystem?)
  • TensorFlow:基于索引列表创建新张量(TensorFlow: Create a new tensor based on list of indices)
  • 企业安全培训的各项内容
  • 错误:RPC失败;(error: RPC failed; curl transfer closed with outstanding read data remaining)
  • C#类名中允许哪些字符?(What characters are allowed in C# class name?)
  • NumPy:将int64值存储在np.array中并使用dtype float64并将其转换回整数是否安全?(NumPy: Is it safe to store an int64 value in an np.array with dtype float64 and later convert it back to integer?)
  • 注销后如何隐藏导航portlet?(How to hide navigation portlet after logout?)
  • 将多个行和可变行移动到列(moving multiple and variable rows to columns)
  • 提交表单时忽略基础href,而不使用Javascript(ignore base href when submitting form, without using Javascript)
  • 对setOnInfoWindowClickListener的意图(Intent on setOnInfoWindowClickListener)
  • Angular $资源不会改变方法(Angular $resource doesn't change method)
  • 在Angular 5中不是一个函数(is not a function in Angular 5)
  • 如何配置Composite C1以将.m和桌面作为同一站点提供服务(How to configure Composite C1 to serve .m and desktop as the same site)
  • 不适用:悬停在悬停时:在元素之前[复制](Don't apply :hover when hovering on :before element [duplicate])
  • 常见的python rpc和cli接口(Common python rpc and cli interface)
  • Mysql DB单个字段匹配多个其他字段(Mysql DB single field matching to multiple other fields)
  • 产品页面上的Magento Up出售对齐问题(Magento Up sell alignment issue on the products page)