質問
ロードスを使用してAndroidアプリケーションを開発しています。ロードスにhttpary gemをインストールしました。今、私が声明を書いているとき、「「httparty」を要求する」アプリケーションのトップでは、「そのようなファイルがロードされない」などのエラーが発生します。この問題を解決するにはどうすればよいですか?
解決
から ドキュメンテーション, 、「Ruby Extensionライブラリの追加ライブラリをRhodesアプリケーションに追加」から開始するセクションまでスクロールします。以下に要約すると、外部ライブラリをアプリケーションに含める3つの方法について詳しく説明します。
- 個々のアプリケーションにRuby拡張機能を追加します
- Rubyライブラリを個別のアプリケーションに追加します
- すべてのアプリケーション用に構築されるロードスフレームワークにルビーライブラリを追加する
ベースロードスフレームワークには、含まれるほど十分にジェネリックとみなされるもののみが含まれています。したがって、構築されたアプリケーションパッケージサイズを低く保つことができます。ベースフレームワークにはないものは、前述の方法を通じてアプリケーションに含めることができます。
他のヒント
これは、ロードス環境w/ w/ w/ wise以来の推測です。しかし、これが通常のルビースクリプトである場合、あなたは持っている必要があります require 'rubygems'
最初に(使用済みのRubygemsを仮定する...)。
モトローラのドキュメントは恐ろしいです。できれば助けてもらいましょう。まず、定数を調べます $LOAD_PATHS
Rubyコードから、ロードスが検索するパスのリスト全体を表示します。どれでも .rb
このパスのファイルは、自動的に利用可能になります require
.
次に、このライブラリをロードスフレームワーク全体に追加するのか、それともアプリだけに追加するかを決定する必要があります。個人的には、一度に1つのアプリを選択します。なぜなら、それは非互換性の可能性を減らし、あなたのアプリはまだすべてのライブラリが提供されているからです rhodes-*version/lib/framework
アプリにライブラリを追加したい場合、ドキュメントはそれをディレクトリに接続することを提案します app/lib
, 、 しかし この正確なパスのみが検索されることに注意してください .rb
このパスの直接的なステートメントと同じ名前のファイルは、自動的に検出されません。 共通構造は、ライブラリ名が直接配置された単一のファイルであるため、これについて言及します lib
, 、および同じ名前のフォルダー内の実際のライブラリの内容。
例: mime-types
ライブラリは次のとおりです。 lib/mime-types.rb
と lib/mime/
, 、異なる名前が付けられており、Rubyを含めるときにまさにこの種の混乱につながる可能性があります。