The problem I am facing is that my Android application works fine on devices with API 5.0 and higher, but it crashes on devices that have Kitkat (4.4) and its corresponding lower versions. I know that its somehow related to the build tools in my gradle, but still not able to figure out the problem. Can someone please help me with this.
This is my gradle file,
buildscript { repositories { maven { url 'https://maven.fabric.io/public' } } dependencies { classpath 'io.fabric.tools:gradle:1.+' } } apply plugin: 'com.android.application' apply plugin: 'io.fabric' apply plugin: 'android' repositories { maven { url 'https://maven.fabric.io/public' } maven { url 'http://clinker.47deg.com/nexus/content/groups/public' } } android { compileSdkVersion 22 buildToolsVersion '22.0.1' defaultConfig { applicationId "com.abc.example" minSdkVersion 10 targetSdkVersion 22 multiDexEnabled true versionCode 12 versionName "1.0" } buildTypes { release { multiDexEnabled true minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } android { packagingOptions { exclude 'META-INF/LICENSE' } } android { packagingOptions { exclude 'META-INF/NOTICE' } } } dependencies { compile fileTree(include: ['*.jar'], dir: 'libs') compile 'com.android.support:appcompat-v7:22.2.0' compile('com.fortysevendeg.swipelistview:swipelistview: 1.0-SNAPSHOT@aar ') { transitive = true exclude module: 'httpclient' exclude group: 'httpclient' } compile 'com.squareup.retrofit:retrofit:1.9.0' compile 'com.squareup.okhttp:mockwebserver:2.3.0' compile 'de.hdodenhof:circleimageview:1.2.2' compile 'com.android.support:multidex:1.0.1' compile 'com.google.android.gms:play-services-maps:7.5.0' compile files('libs/bitlyj-2.0.0.jar') }
Also getting this error when building a project,
Caused by: java.lang.NoClassDefFoundError: com.package.R$styleable at com.package.widgets.StyleableTextView.<init>(StyleableTextView.java:23)
This is the StyleableTextView class,
public class StyleableTextView extends TextView { public StyleableTextView(Context context) { super(context); } public StyleableTextView(Context context, AttributeSet attrs) { super(context.getApplicationContext(), attrs); UiUtil.setCustomFont(StyleableTextView.this, context, attrs, R.styleable.com_eywa_wonk_widgets_StyleableTextView, R.styleable.com_eywa_wonk_widgets_StyleableTextView_font); } public StyleableTextView(Context context, AttributeSet attrs, int defStyle) { super(context.getApplicationContext(), attrs, defStyle); UiUtil.setCustomFont(StyleableTextView.this, context, attrs, R.styleable.com_eywa_wonk_widgets_StyleableTextView, R.styleable.com_eywa_wonk_widgets_StyleableTextView_font); } }
This is the style in attrs,
<resources> <attr name="font" format="string" /> <declare-styleable name="com.package.widgets.StyleableTextView"> <attr name="font" /> </declare-styleable> </resources>