2015-02-11 4 views
0

У меня есть это приложение, которое требует multidex и он работает отлично на леденец, но когда я запускаю его под KitKat это дает мне Resources$NotFoundException

Мой Gradle конфиг:

defaultConfig { 
     targetSdkVersion 21 
     minSdkVersion 15 
     versionCode 1 
     versionName "1.0" 
     multiDexEnabled true 

    } 
dependencies { 
    compile fileTree(dir: 'libs', include: ['*.jar']) 

    //multidex 
    compile 'com.android.support:multidex:1.0.0' 

    //my own libs 
    compile project(':mylibrarywiththatresource') 

    } 

My Application класс распространяется MultiDexApplication.

А вот исключение:

02-11 16:06:40.705 3609-3609/mypackage W/dalvikvm﹕ threadid=1: thread exiting with uncaught exception (group=0x416f2da0) 
02-11 16:06:40.825 3609-3609/mypackage E/AndroidRuntime﹕ FATAL EXCEPTION: main 
    Process: mypackage, PID: 3609 
    java.lang.RuntimeException: Unable to start activity ComponentInfo{mypackage/mypackage.ui.ServerListActivity}: android.view.InflateException: Binary XML file line #43: Error inflating class mypackage.ui.MiniController 
      at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2334) 
      at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2392) 
      at android.app.ActivityThread.access$900(ActivityThread.java:169) 
      at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1280) 
      at android.os.Handler.dispatchMessage(Handler.java:102) 
      at android.os.Looper.loop(Looper.java:146) 
      at android.app.ActivityThread.main(ActivityThread.java:5487) 
      at java.lang.reflect.Method.invokeNative(Native Method) 
      at java.lang.reflect.Method.invoke(Method.java:515) 
      at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1283) 
      at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1099) 
      at dalvik.system.NativeStart.main(Native Method) 
    Caused by: android.view.InflateException: Binary XML file line #43: Error inflating class mypackage.ui.MiniController 
      at android.view.LayoutInflater.createView(LayoutInflater.java:626) 
      at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:702) 
      at android.view.LayoutInflater.rInflate(LayoutInflater.java:761) 
      at android.view.LayoutInflater.rInflate(LayoutInflater.java:769) 
      at android.view.LayoutInflater.rInflate(LayoutInflater.java:769) 
      at android.view.LayoutInflater.inflate(LayoutInflater.java:498) 
      at android.view.LayoutInflater.inflate(LayoutInflater.java:398) 
      at android.view.LayoutInflater.inflate(LayoutInflater.java:354) 
      at android.support.v7.app.ActionBarActivityDelegateBase.setContentView(ActionBarActivityDelegateBase.java:228) 
      at android.support.v7.app.ActionBarActivity.setContentView(ActionBarActivity.java:102) 
      at mypackage.ui.ServerListActivity.onCreate(ServerListActivity.java:39) 
      at android.app.Activity.performCreate(Activity.java:5451) 
      at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1093) 
      at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2298) 
            at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2392) 
            at android.app.ActivityThread.access$900(ActivityThread.java:169) 
            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1280) 
            at android.os.Handler.dispatchMessage(Handler.java:102) 
            at android.os.Looper.loop(Looper.java:146) 
            at android.app.ActivityThread.main(ActivityThread.java:5487) 
            at java.lang.reflect.Method.invokeNative(Native Method) 
            at java.lang.reflect.Method.invoke(Method.java:515) 
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1283) 
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1099) 
            at dalvik.system.NativeStart.main(Native Method) 
    Caused by: java.lang.reflect.InvocationTargetException 
      at java.lang.reflect.Constructor.constructNative(Native Method) 
      at java.lang.reflect.Constructor.newInstance(Constructor.java:423) 
      at android.view.LayoutInflater.createView(LayoutInflater.java:600) 
            at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:702) 
            at android.view.LayoutInflater.rInflate(LayoutInflater.java:761) 
            at android.view.LayoutInflater.rInflate(LayoutInflater.java:769) 
            at android.view.LayoutInflater.rInflate(LayoutInflater.java:769) 
            at android.view.LayoutInflater.inflate(LayoutInflater.java:498) 
            at android.view.LayoutInflater.inflate(LayoutInflater.java:398) 
            at android.view.LayoutInflater.inflate(LayoutInflater.java:354) 
            at android.support.v7.app.ActionBarActivityDelegateBase.setContentView(ActionBarActivityDelegateBase.java:228) 
            at android.support.v7.app.ActionBarActivity.setContentView(ActionBarActivity.java:102) 
            at mypackage.ui.ServerListActivity.onCreate(ServerListActivity.java:39) 
            at android.app.Activity.performCreate(Activity.java:5451) 
            at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1093) 
            at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2298) 
            at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2392) 
            at android.app.ActivityThread.access$900(ActivityThread.java:169) 
            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1280) 
            at android.os.Handler.dispatchMessage(Handler.java:102) 
            at android.os.Looper.loop(Looper.java:146) 
            at android.app.ActivityThread.main(ActivityThread.java:5487) 
            at java.lang.reflect.Method.invokeNative(Native Method) 
            at java.lang.reflect.Method.invoke(Method.java:515) 
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1283) 
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1099) 
            at dalvik.system.NativeStart.main(Native Method) 
    Caused by: android.view.InflateException: Binary XML file line #3: Error inflating class <unknown> 
      at android.view.LayoutInflater.createView(LayoutInflater.java:626) 
      at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:56) 
      at android.view.LayoutInflater.onCreateView(LayoutInflater.java:675) 
      at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:700) 
      at android.view.LayoutInflater.inflate(LayoutInflater.java:470) 
      at android.view.LayoutInflater.inflate(LayoutInflater.java:398) 
      at android.view.LayoutInflater.inflate(LayoutInflater.java:354) 
      at mypackage.ui.MiniController.<init>(MiniController.java:38) 
            at java.lang.reflect.Constructor.constructNative(Native Method) 
            at java.lang.reflect.Constructor.newInstance(Constructor.java:423) 
            at android.view.LayoutInflater.createView(LayoutInflater.java:600) 
            at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:702) 
            at android.view.LayoutInflater.rInflate(LayoutInflater.java:761) 
            at android.view.LayoutInflater.rInflate(LayoutInflater.java:769) 
            at android.view.LayoutInflater.rInflate(LayoutInflater.java:769) 
            at android.view.LayoutInflater.inflate(LayoutInflater.java:498) 
            at android.view.LayoutInflater.inflate(LayoutInflater.java:398) 
            at android.view.LayoutInflater.inflate(LayoutInflater.java:354) 
            at android.support.v7.app.ActionBarActivityDelegateBase.setContentView(ActionBarActivityDelegateBase.java:228) 
            at android.support.v7.app.ActionBarActivity.setContentView(ActionBarActivity.java:102) 
            at mypackage.ui.ServerListActivity.onCreate(ServerListActivity.java:39) 
            at android.app.Activity.performCreate(Activity.java:5451) 
            at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1093) 
            at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2298) 
            at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2392) 
            at android.app.ActivityThread.access$900(ActivityThread.java:169) 
            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1280) 
            at android.os.Handler.dispatchMessage(Handler.java:102) 
            at android.os.Looper.loop(Looper.java:146) 
            at android.app.ActivityThread.main(ActivityThread.java:5487) 
            at java.lang.reflect.Method.invokeNative(Native Method) 
            at java.lang.reflect.Method.invoke(Method.java:515) 
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1283) 
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1099) 
            at dalvik.system.NativeStart.main(Native Method) 
    Caused by: java.lang.reflect.InvocationTargetException 
      at java.lang.reflect.Constructor.constructNative(Native Method) 
      at java.lang.reflect.Constructor.newInstance(Constructor.java:423) 
      at android.view.LayoutInflater.createView(LayoutInflater.java:600) 
            at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:56) 
            at android.view.LayoutInflater.onCreateView(LayoutInflater.java:675) 
            at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:700) 
            at android.view.LayoutInflater.inflate(LayoutInflater.java:470) 
            at android.view.LayoutInflater.inflate(LayoutInflater.java:398) 
            at android.view.LayoutInflater.inflate(LayoutInflater.java:354) 
            at mypackage.ui.MiniController.<init>(MiniController.java:38) 
            at java.lang.reflect.Constructor.constructNative(Native Method) 
            at java.lang.reflect.Constructor.newInstance(Constructor.java:423) 
            at android.view.LayoutInflater.createView(LayoutInflater.java:600) 
            at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:702) 
            at android.view.LayoutInflater.rInflate(LayoutInflater.java:761) 
            at android.view.LayoutInflater.rInflate(LayoutInflater.java:769) 
            at android.view.LayoutInflater.rInflate(LayoutInflater.java:769) 
            at android.view.LayoutInflater.inflate(LayoutInflater.java:498) 
            at android.view.LayoutInflater.inflate(LayoutInflater.java:398) 
            at android.view.LayoutInflater.inflate(LayoutInflater.java:354) 
            at android.support.v7.app.ActionBarActivityDelegateBase.setContentView(ActionBarActivityDelegateBase.java:228) 
            at android.support.v7.app.ActionBarActivity.setContentView(ActionBarActivity.java:102) 
            at mypackage.ui.ServerListActivity.onCreate(ServerListActivity.java:39) 
            at android.app.Activity.performCreate(Activity.java:5451) 
            at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1093) 
            at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2298) 
            at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2392) 
            at android.app.ActivityThread.access$900(ActivityThread.java:169) 
            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1280) 
            at android.os.Handler.dispatchMessage(Handler.java:102) 
            at android.os.Looper.loop(Looper.java:146) 
            at android.app.ActivityThread.main(ActivityThread.java:5487) 
            at java.lang.reflect.Method.invokeNative(Native Method) 
            at java.lang.reflect.Method.invoke(Method.java:515) 
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1283) 
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1099) 
            at dalvik.system.NativeStart.main(Native Method) 
    Caused by: android.content.res.Resources$NotFoundException: File res/drawable/border_all_around.xml from drawable resource ID #0x7f02003d 
      at android.content.res.Resources.loadDrawable(Resources.java:3066) 
      at android.content.res.TypedArray.getDrawable(TypedArray.java:602) 
      at android.view.View.<init>(View.java:3708) 
      at android.view.View.<init>(View.java:3638) 
      at android.view.ViewGroup.<init>(ViewGroup.java:474) 
      at android.widget.RelativeLayout.<init>(RelativeLayout 

Так что я делаю неправильно?

Спасибо.

EDIT: Это где он выходит из строя:

public class MainActivity extends ActionBarActivity { 
.... 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity); 

На setContentView.

EDIT: Добавление большего количества Gradle файла:

productFlavors { 
     // Define separate dev and prod product flavors. 
     dev { 
      // dev utilizes minSDKVersion = 21 to allow the Android gradle plugin 
      // to pre-dex each module and produce an APK that can be tested on 
      // Android Lollipop without time consuming dex merging processes. 
      minSdkVersion 21 
     } 
     prod { 
      // The actual minSdkVersion for the application. 
      minSdkVersion 15 
     } 
    } 



buildTypes { 
     release { 
      minifyEnabled false 
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
     } 
    } 

EDIT: Я должен упомянуть, что я не на Android Studio 1.1 rc1 и еще имея проблемы.

EDIT: Если я удалю использование выталкиваемого, которое он жалуется, тогда он отлично работает. Это вытяжке:

<shape xmlns:android="http://schemas.android.com/apk/res/android" 
     android:shape="rectangle"> 
    <stroke 
      android:width="1dip" 
      android:color="@color/ib_light_gray" /> 
    <solid android:color="?attr/colorPrimary"></solid> 
</shape> 

И он используется, как это в файле макета (мини-контроллер) в том же модуле:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="horizontal" 
    android:layout_width="fill_parent" 
    android:layout_height="48dp" 
    android:paddingTop="10dp" 
    android:paddingBottom="10dp" 
    android:background="@drawable/border_all_around"> 

Этот файл макета является частью пользовательского вида, который я использую на моем основном модуле основной деятельности:

<mypackage.ui.MiniController 
       android:layout_width="fill_parent" 
       android:layout_height="wrap_content" 
       android:id="@+id/mini_controller" 
       android:visibility="gone" 
       android:layout_alignParentBottom="true" 
       > 

      </mypackage.ui.MiniController> 

EDIT: Выяснил проблему. Так как это был фон, вызывающий это, я попытался установить фон в представлении представления, а не в xml, и он дал мне эту ошибку java.lang.UnsupportedOperationException: Can't convert to color: type=0x2, которая сказала мне, что была проблема с цветом, поэтому я заменил <solid android:color="?attr/colorPrimary"></solid> на другой цвет, и он сработал.

+0

Можете ли вы разместить свой серверListActivity, пожалуйста? – Marcus

+0

Вам не хватает 'buildTypes', не так ли?'BuildTypes {{ релиз minifyEnabled ложные proguardFiles getDefaultProguardFile ('ProGuard-android.txt'), 'proguard-rules.pro' } }' –

+0

Я добавил редактирования с типами сборки. – casolorz

ответ

3

Разобрался проблема. Так как это был фон, вызывающий это, я попытался установить фон в представлении представления, а не в xml, и он дал мне эту ошибку java.lang.UnsupportedOperationException: Can't convert to color: type=0x2, которая сказала мне, что была проблема с цветом, поэтому я заменил <solid android:color="?attr/colorPrimary"></solid> на другой цвет, и он сработал.

0

Как я упоминая в мой комментарий, вы можете упустить это из вашего build.grandle:

buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } }

+0

Добавлены мои типы сборки при редактировании. – casolorz

2

Продлить android.app.Application в собственном классе приложений, а также добавить, что

@Override 
protected void attachBaseContext(Context base) { 
    super.attachBaseContext(base); 
    MultiDex.install(this); 
} 
+0

Мое приложение расширяет 'MultiDexApplication', но прежде чем я это сделал, у меня было то, что вы предложили. – casolorz

+0

Пошел, чтобы удалить свой собственный класс приложения и использовать 'android.support.multidex.MultiDexApplication' и все еще не удалось. – casolorz

+0

У меня такая же конфигурация (sdk и т. Д.), Что и у вас. У меня есть то, что я написал выше, не включают в себя multidex библиотеку, включен multidex в 'build.gradle', а также добавил, что: dexOptions { jumboMode истинного javaMaxHeapSize "4g" } – mbmc

Смежные вопросы