2016-08-16 3 views
0

Ich habe 2 apk, Haupt- und zweite mit nur Ressourcen von der ersten apk verwendet. Ich versuche, das LayoutKann CardView nicht aus freigegebenen Ressourcen aufblasen

mPackName = mContext.getPackageName() + "remote_package_prefix"; 
mThemeContext = mContext.createPackageContext(mPackName, Context.CONTEXT_IGNORE_SECURITY); 
mResources = mThemeContext.getResources(); 
mInflater = LayoutInflater.from(mThemeContext); 
ViewGroup viewGroup = (ViewGroup) mInflater.inflate(mResources.getLayout(getRemoteId(R.layout.remote_layout)), this, true); 

und bekam diesen Fehler

android.view.InflateException: Binary XML file line #20: Error inflating class <unknown> 
Caused by:java.lang.reflect.InvocationTargetException 
Caused by:android.content.res.Resources$NotFoundException: Resource ID #0x7f070001 
at android.content.res.Resources.getValue(Resources.java:1233) 
at android.content.res.Resources.getColor(Resources.java:887) 
at android.support.v7.widget.CardView.initialize(CardView.java:228) 
at android.support.v7.widget.CardView.<init>(CardView.java:112) 

# 0x7f070001 ist CardView

Wie aufzublasen, diese zu lösen?

AKTUALISIERT CardView xml

<android.support.v7.widget.CardView 
    xmlns:card_view="http://schemas.android.com/apk/res-auto" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:layout_marginBottom="@dimen/number_item_padding_h" 
    android:layout_marginLeft="@dimen/number_item_padding_v" 
    android:layout_marginRight="@dimen/number_item_padding_v" 
    android:layout_marginTop="@dimen/number_item_padding_h" 
    card_view:cardCornerRadius="4dp" /> 
+0

Fügen Sie Ihre Layout-Datei XML in dieser Frage – Booger

+0

Ich nehme an, es konnte nicht finden, Stil namens "CardView" – Hahaido

+0

Haben Sie die Gradle-Abhängigkeit enthalten (vorausgesetzt, würde ohne es nicht kompilieren). Haben Sie auch sichergestellt, dass die Versionen der AppCompat-Version entsprechen (dh für beide Versionen 23.4.1)? – Booger

Antwort

0

Schließlich bekam es funktionieren. Setzen Sie einfach cardBackgroundColor auf benutzerdefinierten Wert. Ich absolut nicht verstehen, warum sie nicht mit Standardarbeits cardBackgroundColor Wert ...

Am Ende war ich gezwungen, meine Gewohnheit CardView Stil zu definieren und zuweisen zu jedem CardView in meinem Layout

<style name="AppTheme.CardView" parent="CardView"> 
    <item name="cardBackgroundColor">@android:color/white</item> 
    <item name="cardCornerRadius">4dp</item> 
    <item name="cardElevation">2dp</item> 
    <item name="cardMaxElevation">2dp</item> 
    <item name="cardUseCompatPadding">false</item> 
    <item name="cardPreventCornerOverlap">true</item> 
</style> 
Verwandte Themen