【发布时间】:2017-12-11 20:04:48
【问题描述】:
我正在使用一个带有 3 个选项卡的活动,这在调试中完美运行,但是当我发布应用程序并生成签名 APK 时,我的应用程序崩溃了。
我的布局
<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true">
<android.support.design.widget.AppBarLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar">
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
app:layout_scrollFlags="enterAlways"
app:navigationIcon="@drawable/ic_launcher"
app:popupTheme="@style/ThemeOverlay.AppCompat.Light" />
<android.support.design.widget.TabLayout
android:id="@+id/tabs"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:tabGravity="fill"
app:tabMode="fixed" />
</android.support.design.widget.AppBarLayout>
<android.support.v4.view.ViewPager
android:id="@+id/viewpager"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_behavior="@string/appbar_scrolling_view_behavior" />
</android.support.design.widget.CoordinatorLayout>
生成APK“应用程序停止”时的错误信息
java.lang.NoSuchMethodError:
at android.support.v7.widget.AppCompatDrawableManager.loadDrawableFromDelegates (Unknown Source)
at android.support.v7.widget.AppCompatDrawableManager.getDrawable (Unknown Source)
at android.support.v7.widget.AppCompatDrawableManager.getDrawable (Unknown Source)
at android.support.v7.widget.AppCompatDrawableManager.checkVectorDrawableSetup (Unknown Source)
at android.support.v7.widget.AppCompatDrawableManager.getDrawable (Unknown Source)
at android.support.v7.widget.TintTypedArray.getDrawableIfKnown (Unknown Source)
at android.support.v7.app.AppCompatDelegateImplBase.<init> (Unknown Source)
at android.support.v7.app.AppCompatDelegateImplV9.<init> (Unknown Source)
at android.support.v7.app.AppCompatDelegateImplV11.<init> (Unknown Source)
at android.support.v7.app.AppCompatDelegateImplV14.<init> (Unknown Source)
at android.support.v7.app.AppCompatDelegateImplV23.<init> (Unknown Source)
at android.support.v7.app.AppCompatDelegate.create (Unknown Source)
at android.support.v7.app.AppCompatDelegate.create (Unknown Source)
at android.support.v7.app.AppCompatActivity.getDelegate (Unknown Source)
at android.support.v7.app.AppCompatActivity.onCreate (Unknown Source)
at com.app.sgi.AppMovil.ModuloCosecha.CensarCosecha.onCreate (Unknown Source)
at android.app.Activity.performCreate (Activity.java:6294)
at android.app.Instrumentation.callActivityOnCreate (Instrumentation.java:1108)
at android.app.ActivityThread.performLaunchActivity (ActivityThread.java:2369)
at android.app.ActivityThread.handleLaunchActivity (ActivityThread.java:2476)
at android.app.ActivityThread.access$900 (ActivityThread.java:150)
at android.app.ActivityThread$H.handleMessage (ActivityThread.java:1344)
at android.os.Handler.dispatchMessage (Handler.java:102)
at android.os.Looper.loop (Looper.java:148)
at android.app.ActivityThread.main (ActivityThread.java:5417)
at java.lang.reflect.Method.invoke (Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run (ZygoteInit.java:726)
at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:616)
我的 gradle 文件
defaultConfig {
generatedDensities = []
vectorDrawables.useSupportLibrary = true
minSdkVersion 15
targetSdkVersion 27
return true
}
buildTypes {
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
aaptOptions {
additionalParameters "--no-version-vectors"
}
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
compile 'com.android.support:appcompat-v7:27.0.2'
compile 'com.android.support:support-v4:27.0.2'
compile 'com.android.support:design:27.0.2'
compile 'com.google.android.gms:play-services-maps:11.6.2'
compile 'com.google.maps.android:android-maps-utils:0.4'
compile 'com.android.support.constraint:constraint-layout:1.0.2'
compile 'net.zetetic:android-database-sqlcipher:3.5.4@aar'
}
请帮忙,谢谢。 我不明白为什么它在开发(调试)中有效,但在生产中无效(发布生成的 APK)
已编辑的 gradle(不工作)
apply plugin: 'com.android.application'
android {
compileSdkVersion 26
buildToolsVersion '26.0.1'
useLibrary 'org.apache.http.legacy'
defaultConfig {
generatedDensities = []
vectorDrawables.useSupportLibrary = true
minSdkVersion 15
targetSdkVersion 26
return true
}
buildTypes {
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
aaptOptions {
additionalParameters "--no-version-vectors"
}
packagingOptions {
exclude 'META-INF/LICENSE'
exclude 'META-INF/DEPENDENCIES'
exclude 'META-INF/NOTICE'
return true
}
}
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
compile 'com.android.support:appcompat-v7:26.0.1'
//compile 'com.android.support:support-v4:26.0.1'
compile 'com.android.support:design:26.0.1'
compile 'com.google.android.gms:play-services-maps:11.6.2'
compile 'com.google.maps.android:android-maps-utils:0.4'
compile 'com.android.support.constraint:constraint-layout:1.0.2'
compile 'net.zetetic:android-database-sqlcipher:3.5.4@aar'
}
【问题讨论】:
-
尝试删除这个
compile 'com.android.support:support-v4:27.0.2'...你的buildToolVersion..是什么? -
我的 buildToolVersion android { compileSdkVersion 27 buildToolsVersion '27.0.2' useLibrary 'org.apache.http.legacy'
-
我正在尝试删除 "compile 'com.android.support:support-v4:27.0.2'" 但不起作用
-
我不确定
27.0.2..是否是一个稳定版本...尝试降级buildToolsVersion "26.0.1"和compile 'com.android.support:appcompat-v7:26.0.1'--只是一个建议 -
尝试使用 27.0.2 但无法正常工作