gpt4 book ai didi

android - 低于 5.0 的 Android API 上的应用程序崩溃( Lollipop )

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:19:29 24 4
gpt4 key购买 nike

我面临的问题是我的 android 应用程序在具有 API 5.0 及更高版本的设备上运行良好,但在具有 Kitkat(4.4) 及其相应较低版本的设备上崩溃。我知道它与我的 gradle 中的构建工具有某种关系文件,但仍然无法找出问题所在。有人可以帮我解决这个问题吗。

这是我的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: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')

}

在构建项目时也会出现此错误,

Caused by: java.lang.NoClassDefFoundError: com.package.R$styleable
at com.package.widgets.StyleableTextView.<init>(StyleableTextView.java:23)

这是 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);
}

}

这是 attrs 中的样式,

<resources>

<attr name="font" format="string" />

<declare-styleable name="com.package.widgets.StyleableTextView">
<attr name="font" />

</declare-styleable>

</resources>

最佳答案

当您使用 multidex 时,请尝试使用 MultiDexAppication 而不是 Application 来扩展您的应用程序类,并覆盖以下 Android 所需的方法5.0以下(因为5.0以上支持multidex)

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

并在依赖项中添加这个

编译'com.android.support:multidex:1.0.1'

关于android - 低于 5.0 的 Android API 上的应用程序崩溃( Lollipop ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32328806/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com