AndroidアプリでサポートライブラリのCardView
を使用しています。これを解決するために4〜5時間試しましたが、成功しませんでした。
プロジェクトとv7appcompatのライブラリとしてCardView
も追加しました
<Android.support.v7.widget.CardView
xmlns:Android="http://schemas.Android.com/apk/res/Android"
xmlns:app="http://schemas.Android.com/apk/res-auto"
Android:layout_width="match_parent"
Android:layout_height="match_parent"
Android:layout_margin="5dp"
Android:orientation="horizontal"
app:cardCornerRadius="4dp" >
しかし、私のアプリは以下のログでクラッシュしています
10-31 18:41:39.577: E/AndroidRuntime(5666): FATAL EXCEPTION: main
10-31 18:41:39.577: E/AndroidRuntime(5666): Process: com.xyzladdoo, PID: 5666
10-31 18:41:39.577: E/AndroidRuntime(5666): Android.view.InflateException: Binary XML file line #2: Error inflating class Android.support.v7.widget.CardView
10-31 18:41:39.577: E/AndroidRuntime(5666): at Android.view.LayoutInflater.createViewFromTag(LayoutInflater.Java:707)
10-31 18:41:39.577: E/AndroidRuntime(5666): at Android.view.LayoutInflater.inflate(LayoutInflater.Java:469)
10-31 18:41:39.577: E/AndroidRuntime(5666): at Android.view.LayoutInflater.inflate(LayoutInflater.Java:397)
10-31 18:41:39.577: E/AndroidRuntime(5666): at com.xyzladdoo.adapters.RecycleViewAdapter.onCreateViewHolder(RecycleViewAdapter.Java:85)
10-31 18:41:39.577: E/AndroidRuntime(5666): at com.xyzladdoo.adapters.RecycleViewAdapter.onCreateViewHolder(RecycleViewAdapter.Java:1)
10-31 18:41:39.577: E/AndroidRuntime(5666): at Android.support.v7.widget.RecyclerView$Adapter.createViewHolder(RecyclerView.Java:2915)
10-31 18:41:39.577: E/AndroidRuntime(5666): at Android.support.v7.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.Java:2511)
10-31 18:41:39.577: E/AndroidRuntime(5666): at Android.support.v7.widget.LinearLayoutManager$RenderState.next(LinearLayoutManager.Java:1425)
10-31 18:41:39.577: E/AndroidRuntime(5666): at Android.support.v7.widget.LinearLayoutManager.fill(LinearLayoutManager.Java:999)
10-31 18:41:39.577: E/AndroidRuntime(5666): at Android.support.v7.widget.LinearLayoutManager.onLayoutChildren(LinearLayoutManager.Java:524)
10-31 18:41:39.577: E/AndroidRuntime(5666): at Android.support.v7.widget.RecyclerView.dispatchLayout(RecyclerView.Java:1461)
10-31 18:41:39.577: E/AndroidRuntime(5666): at Android.support.v7.widget.RecyclerView.onLayout(RecyclerView.Java:1600)
10-31 18:41:39.577: E/AndroidRuntime(5666): at Android.view.View.layout(View.Java:14860)
10-31 18:41:39.577: E/AndroidRuntime(5666): at Android.view.ViewGroup.layout(ViewGroup.Java:4643)
10-31 18:41:39.577: E/AndroidRuntime(5666): at Android.support.v4.widget.SwipeRefreshLayout.onLayout(SwipeRefreshLayout.Java:543)
10-31 18:41:39.577: E/AndroidRuntime(5666): at Android.view.View.layout(View.Java:14860)
10-31 18:41:39.577: E/AndroidRuntime(5666): at Android.view.ViewGroup.layout(ViewGroup.Java:4643)
10-31 18:41:39.577: E/AndroidRuntime(5666): at Android.widget.LinearLayout.setChildFrame(LinearLayout.Java:1671)
10-31 18:41:39.577: E/AndroidRuntime(5666): at Android.widget.LinearLayout.layoutVertical(LinearLayout.Java:1525)
10-31 18:41:39.577: E/AndroidRuntime(5666): at Android.widget.LinearLayout.onLayout(LinearLayout.Java:1434)
10-31 18:41:39.577: E/AndroidRuntime(5666): at Android.view.View.layout(View.Java:14860)
10-31 18:41:39.577: E/AndroidRuntime(5666): at Android.view.ViewGroup.layout(ViewGroup.Java:4643)
10-31 18:41:39.577: E/AndroidRuntime(5666): at Android.widget.FrameLayout.layoutChildren(FrameLayout.Java:453)
10-31 18:41:39.577: E/AndroidRuntime(5666): at Android.widget.FrameLayout.onLayout(FrameLayout.Java:388)
10-31 18:41:39.577: E/AndroidRuntime(5666): at Android.view.View.layout(View.Java:14860)
10-31 18:41:39.577: E/AndroidRuntime(5666): at Android.view.ViewGroup.layout(ViewGroup.Java:4643)
10-31 18:41:39.577: E/AndroidRuntime(5666): at Android.support.v4.view.ViewPager.onLayout(ViewPager.Java:1594)
10-31 18:41:39.577: E/AndroidRuntime(5666): at Android.view.View.layout(View.Java:14860)
10-31 18:41:39.577: E/AndroidRuntime(5666): at Android.view.ViewGroup.layout(ViewGroup.Java:4643)
10-31 18:41:39.577: E/AndroidRuntime(5666): at Android.support.v4.widget.DrawerLayout.onLayout(DrawerLayout.Java:887)
10-31 18:41:39.577: E/AndroidRuntime(5666): at Android.view.View.layout(View.Java:14860)
10-31 18:41:39.577: E/AndroidRuntime(5666): at Android.view.ViewGroup.layout(ViewGroup.Java:4643)
10-31 18:41:39.577: E/AndroidRuntime(5666): at Android.widget.FrameLayout.layoutChildren(FrameLayout.Java:453)
10-31 18:41:39.577: E/AndroidRuntime(5666): at Android.widget.FrameLayout.onLayout(FrameLayout.Java:388)
10-31 18:41:39.577: E/AndroidRuntime(5666): at Android.view.View.layout(View.Java:14860)
10-31 18:41:39.577: E/AndroidRuntime(5666): at Android.view.ViewGroup.layout(ViewGroup.Java:4643)
10-31 18:41:39.577: E/AndroidRuntime(5666): at Android.support.v7.internal.widget.ActionBarOverlayLayout.onLayout(ActionBarOverlayLayout.Java:502)
10-31 18:41:39.577: E/AndroidRuntime(5666): at Android.view.View.layout(View.Java:14860)
10-31 18:41:39.577: E/AndroidRuntime(5666): at Android.view.ViewGroup.layout(ViewGroup.Java:4643)
10-31 18:41:39.577: E/AndroidRuntime(5666): at Android.widget.FrameLayout.layoutChildren(FrameLayout.Java:453)
10-31 18:41:39.577: E/AndroidRuntime(5666): at Android.widget.FrameLayout.onLayout(FrameLayout.Java:388)
10-31 18:41:39.577: E/AndroidRuntime(5666): at Android.view.View.layout(View.Java:14860)
10-31 18:41:39.577: E/AndroidRuntime(5666): at Android.view.ViewGroup.layout(ViewGroup.Java:4643)
10-31 18:41:39.577: E/AndroidRuntime(5666): at Android.widget.LinearLayout.setChildFrame(LinearLayout.Java:1671)
10-31 18:41:39.577: E/AndroidRuntime(5666): at Android.widget.LinearLayout.layoutVertical(LinearLayout.Java:1525)
10-31 18:41:39.577: E/AndroidRuntime(5666): at Android.widget.LinearLayout.onLayout(LinearLayout.Java:1434)
10-31 18:41:39.577: E/AndroidRuntime(5666): at Android.view.View.layout(View.Java:14860)
10-31 18:41:39.577: E/AndroidRuntime(5666): at Android.view.ViewGroup.layout(ViewGroup.Java:4643)
10-31 18:41:39.577: E/AndroidRuntime(5666): at Android.widget.FrameLayout.layoutChildren(FrameLayout.Java:453)
10-31 18:41:39.577: E/AndroidRuntime(5666): at Android.widget.FrameLayout.onLayout(FrameLayout.Java:388)
10-31 18:41:39.577: E/AndroidRuntime(5666): at Android.view.View.layout(View.Java:14860)
10-31 18:41:39.577: E/AndroidRuntime(5666): at Android.view.ViewGroup.layout(ViewGroup.Java:4643)
10-31 18:41:39.577: E/AndroidRuntime(5666): at Android.view.ViewRootImpl.performLayout(ViewRootImpl.Java:2013)
10-31 18:41:39.577: E/AndroidRuntime(5666): at Android.view.ViewRootImpl.performTraversals(ViewRootImpl.Java:1770)
10-31 18:41:39.577: E/AndroidRuntime(5666): at Android.view.ViewRootImpl.doTraversal(ViewRootImpl.Java:1019)
10-31 18:41:39.577: E/AndroidRuntime(5666): at Android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.Java:5725)
10-31 18:41:39.577: E/AndroidRuntime(5666): at Android.view.Choreographer$CallbackRecord.run(Choreographer.Java:761)
10-31 18:41:39.577: E/AndroidRuntime(5666): at Android.view.Choreographer.doCallbacks(Choreographer.Java:574)
10-31 18:41:39.577: E/AndroidRuntime(5666): at Android.view.Choreographer.doFrame(Choreographer.Java:544)
10-31 18:41:39.577: E/AndroidRuntime(5666): at an
何か助けはありますか?前もって感謝します。
Cardviewをライブラリとしてインポートしましょう:
ファイルに移動->インポート->既存Androidコードをワークスペースに->参照(sdk/extras/Android/support/v7/cardviewに移動)->クリックok-> [完了]をクリックします
これで、プロジェクトエクスプローラーにcardviewがプロジェクトとして表示されます。
カードビュープロジェクトを右クリック->プロパティ-> Android(左ペイン)-> isLibraryを有効にする(チェックボックスをオンにする)->適用-> OK
プロジェクトを右クリック->プロパティ-> Android(左側のペイン)->追加(ライブラリの下)->カードビュー->適用-> OK
プロジェクトをもう一度右クリックします->ビルドパス->ビルドパスを構成します-> [プロジェクト]タブで、cardviewを追加します
これで完了です。
出典
(intellijユーザー向け)
この問題を修正するには。まず、\ sdk\extras\Android\supportからcardviewを追加する必要があります
それは私にとってはうまくいきます。
コンパイルされたクラス以外のリソース(XMLなど)を含むサポートライブラリは、単なるjarとして追加することはできません。
次の手順に従ってください。
https://developer.Android.com/tools/support-library/setup.html#libs-with-res
それがうまくいけば、今私たちにしましょう。
これを試して..
<Android.support.v7.widget.CardView
xmlns:Android="http://schemas.Android.com/apk/res/Android"
xmlns:tools="http://schemas.Android.com/tools"
xmlns:card_view="http://schemas.Android.com/apk/res-auto"
Android:id="@+id/card_view"
Android:layout_gravity="center"
Android:layout_width="200dp"
Android:layout_height="200dp"
card_view:cardCornerRadius="4dp">
</Android.support.v7.widget.CardView>
参照: カードの作成
外側のlinearlayoutでこのように使用してみてください。
<LinearLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
xmlns:tools="http://schemas.Android.com/tools"
xmlns:card_view="http://schemas.Android.com/apk/res-auto"
... >
<!-- A CardView that contains a TextView -->
<Android.support.v7.widget.CardView
xmlns:card_view="http://schemas.Android.com/apk/res-auto"
Android:id="@+id/card_view"
Android:layout_gravity="center"
Android:layout_width="200dp"
Android:layout_height="200dp"
card_view:cardCornerRadius="4dp">
<TextView
Android:id="@+id/info_text"
Android:layout_width="match_parent"
Android:layout_height="match_parent" />
</Android.support.v7.widget.CardView>
</LinearLayout>
私はあなたと同じ問題を抱えていました。
Eclipseで、ディレクトリ\ sdk\extras\Android\support\v7\cardviewからcardviewをインポートする場合は、「リソースを含むライブラリの追加」でコメントされている手順に従ってください。 ->公式ドキュメントの「Eclipse」: https://developer.Android.com/intl/es/tools/support-library/setup.html#libs-with-res
cardviewをライブラリとしてプロジェクトに追加する前に、cardviewプロジェクトの[プロパティ]-> [Android]に移動し、Androidサポートを追加します-v7-appcompatライブラリ。「IsLibrary」をチェックすることを忘れないでください。
これで、cardviewをライブラリとしてプロジェクトに追加できます。両方のプロジェクトをクリーンアップして、変更を更新します。
お役に立てば幸いです。