2016-11-26 17 views
-2

Androidスタジオエミュレータ(Nexus 4 API 23)を使用して作成したアプリをエミュレートすると、完全に機能します。私は同じアプリをエミュレートするために私の携帯電話(サムスンSM-G3502TのAndroid 4.3 API 18)を使用する場合でも、それは怒鳴る、このコードで立ち往生:Androidスタジオエミュレータでは動作しますが、Android搭載携帯では動作しません

if(activity instanceof CategoriaListaActivity) { 
     boolean isSelected = (categoriaSelectedId == item.getCodigo()); 
     ((CategoriaViewHolder)holder).getNomeTextView().setTextColor(isSelected ? activity.getColor(R.color.colorPrimaryDark) : activity.getColor(R.color.colorAccent)); 
    } 

Logcat言う:

E/dalvikvm: Could not find class 'android.util.ArrayMap', referenced from method com.android.tools.fd.runtime.Restarter.getActivities 
W/dalvikvm: VFY: unable to resolve instanceof 2042 (Landroid/util/ArrayMap;) in Lcom/android/tools/fd/runtime/Restarter; 
D/dalvikvm: VFY: replacing opcode 0x20 at 0x006f 
I/dalvikvm: Could not find method android.app.Activity.getColor, referenced from method catalog.raulfmiranda.com.catalog.ui.adapter.CategoriaRecyclerAdapter.onBindViewHolder 
W/dalvikvm: VFY: unable to resolve virtual method 58: Landroid/app/Activity;.getColor (I)I 
D/dalvikvm: VFY: replacing opcode 0x6e at 0x0058 
I/dalvikvm: Could not find method android.app.Activity.getColor, referenced from method catalog.raulfmiranda.com.catalog.ui.adapter.CategoriaRecyclerAdapter.onBindViewHolder 
W/dalvikvm: VFY: unable to resolve virtual method 58: Landroid/app/Activity;.getColor (I)I 
D/dalvikvm: VFY: replacing opcode 0x6e at 0x0067 
D/AndroidRuntime: Shutting down VM 
W/dalvikvm: threadid=1: thread exiting with uncaught exception (group=0x41a7a8c8) 
E/AndroidRuntime: FATAL EXCEPTION: main 
        java.lang.NoSuchMethodError: android.app.Activity.getColor 
         at catalog.raulfmiranda.com.catalog.ui.adapter.CategoriaRecyclerAdapter.onBindViewHolder(CategoriaRecyclerAdapter.java:52) 
         at android.support.v7.widget.RecyclerView$Adapter.onBindViewHolder(RecyclerView.java:5825) 

どのようにすることができます私が直します?

+1

getCountについてのドキュメントは何ですか? – Selvin

答えて

0

API> = 23(documentation)で利用可能なメソッドを呼び出していますが、使用するモバイルでは使用できなくなったメソッド(documentation)のみが使用されています。これを解決するには、support-v4ライブラリのContextCompat.getColor(Context, int)を使用する必要があります。

+0

偶然の色の代わりに、太字とイタリック体にすることにしました。これは、((CategoriaViewHolder)holder).getNomeTextView()。setTypeface(null、Typeface.BOLD_ITALIC);を使用して動作します。 –

0

あなたはAPI 23と上とを必要とするコールを使用しているAPI 23のOKを持っているエミュレータでテストができますが、下のAPIにそれを持っていないとき

これは、API 23

を必要とする呼び出しです
activity.getColor(int id); 
関連する問題