Il problema che sto affrontando è che la mia applicazione Android funziona bene su dispositivi con API 5.0 e successive ma si blocca su dispositivi con Kitkat (4.4) e le corrispondenti versioni inferiori. che è in qualche modo correlato agli strumenti di compilazione nel mio file gradle, ma non è ancora in grado di capire il problema. Qualcuno potrebbe aiutarmi con questo.App in arresto anomalo su API Android inferiore a 5.0 (lollipop)
Questo è il mio file Gradle,
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:[email protected]') {
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')
}
ottenere questo errore quando il progetto è costruito Inoltre,
Caused by: java.lang.NoClassDefFoundError: com.package.R$styleable
at com.package.widgets.StyleableTextView.<init>(StyleableTextView.java:23)
Questa è classe StyleableTextView,
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);
}
}
Questa è la styleable in attrs,
<resources>
<attr name="font" format="string" />
<declare-styleable name="com.package.widgets.StyleableTextView">
<attr name="font" />
</declare-styleable>
</resources>
Puoi essere più specifico sull'errore? Pubblica la traccia dello stack – forcewill
Sì, certo. Ho creato uno stile personalizzato per una visualizzazione testo personalizzata nel mio file attrs nella cartella "values". Lo styleable viene rilevato in dispositivi con 5.0 ma in dispositivi con API 4.4 e meno, dice che non è possibile trovare il TextView personalizzato nella tua app insieme con l'errore e sono abbastanza sicuro di averlo usato come "com.package.CustomTextView" –
La cartella dei valori ha un contatore di versione ? Come/values-v22? In tal caso, dovrai creare qualcosa per altre versioni o aggiungere lo stylable personalizzato solo per i dispositivi Lollipop. – Knossos