在Android JellyBean4.1.2的ImageButtons中使用矢量可绘制对象

问题描述

当我尝试在运行Android 4.1.2的手机上安装应用程序时,无法成功加载该应用程序。它在以下行失败:

setContentView(R.layout.activity_main)

经过编辑以包含更多LogCat

LogCat显示(仅错误行

10-08 19:04:50.231 20306-20306/com.example.nearbypois E/dalvikvm: Could not find class 'androidx.core.view.ViewCompat$2',referenced from method androidx.core.view.ViewCompat.addOnUnhandledKeyEventListener
10-08 19:04:50.266 20306-20306/com.example.nearbypois E/dalvikvm: Could not find class 'android.view.View$OnUnhandledKeyEventListener',referenced from method androidx.core.view.ViewCompat.removeOnUnhandledKeyEventListener
10-08 19:04:50.291 20306-20306/com.example.nearbypois E/dalvikvm: Could not find class 'androidx.core.view.ViewCompat$1',referenced from method androidx.core.view.ViewCompat.setonApplyWindowInsetsListener
10-08 19:04:50.356 20306-20306/com.example.nearbypois E/dalvikvm: Could not find class 'android.graphics.drawable.rippledrawable',referenced from method androidx.appcompat.widget.AppCompatimageHelper.hasOverlappingRendering
10-08 19:04:50.411 20306-20306/com.example.nearbypois E/dalvikvm: Could not find class 'android.view.textclassifier.TextClassificationManager',referenced from method androidx.appcompat.widget.AppCompatTextClassifierHelper.getTextClassifier
10-08 19:04:50.466 20306-20306/com.example.nearbypois E/AndroidRuntime: FATAL EXCEPTION: main
    java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.nearbypois/com.example.nearbypois.MainActivity}: android.view.InflateException: Binary XML file line #35: Error inflating class ImageButton
        at android.app.ActivityThread.performlaunchActivity(ActivityThread.java:2110)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2135)
        at android.app.ActivityThread.access$700(ActivityThread.java:140)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1237)
        at android.os.Handler.dispatchMessage(Handler.java:99)
        at android.os.Looper.loop(Looper.java:137)
        at android.app.ActivityThread.main(ActivityThread.java:4921)
        at java.lang.reflect.Method.invokeNative(Native Method)
        at java.lang.reflect.Method.invoke(Method.java:511)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1038)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:805)
        at dalvik.system.NativeStart.main(Native Method)
     Caused by: android.view.InflateException: Binary XML file line #35: Error inflating class ImageButton
        at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:710)
        at android.view.LayoutInflater.rInflate(LayoutInflater.java:752)
        at android.view.LayoutInflater.rInflate(LayoutInflater.java:760)
        at android.view.LayoutInflater.inflate(LayoutInflater.java:495)
        at android.view.LayoutInflater.inflate(LayoutInflater.java:397)
        at android.view.LayoutInflater.inflate(LayoutInflater.java:353)
        at androidx.appcompat.app.AppCompatDelegateImpl.setContentView(AppCompatDelegateImpl.java:555)
        at androidx.appcompat.app.AppCompatActivity.setContentView(AppCompatActivity.java:161)
        at com.example.nearbypois.MainActivity.onCreate(MainActivity.kt:61)
        at android.app.Activity.performCreate(Activity.java:5188)
        at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1094)
        at android.app.ActivityThread.performlaunchActivity(ActivityThread.java:2074)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2135) 
        at android.app.ActivityThread.access$700(ActivityThread.java:140) 
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1237) 
        at android.os.Handler.dispatchMessage(Handler.java:99) 
        at android.os.Looper.loop(Looper.java:137) 
        at android.app.ActivityThread.main(ActivityThread.java:4921) 
        at java.lang.reflect.Method.invokeNative(Native Method) 
        at java.lang.reflect.Method.invoke(Method.java:511) 
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1038) 
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:805) 
        at dalvik.system.NativeStart.main(Native Method) 
     Caused by: android.content.res.Resources$NotFoundException: Resource ID #0x7f070087
        at android.content.res.Resources.getValue(Resources.java:1339)
        at androidx.appcompat.widget.ResourceManagerInternal.loadDrawableFromDelegates(ResourceManagerInternal.java:252)
        at androidx.appcompat.widget.ResourceManagerInternal.getDrawable(ResourceManagerInternal.java:139)
        at androidx.appcompat.widget.ResourceManagerInternal.getDrawable(ResourceManagerInternal.java:132)
        at androidx.appcompat.content.res.AppCompatResources.getDrawable(AppCompatResources.java:104)
        at androidx.appcompat.widget.AppCompatimageHelper.loadFromAttributes(AppCompatimageHelper.java:59)
        at androidx.appcompat.widget.AppCompatimageButton.<init>(AppCompatimageButton.java:79)
        at androidx.appcompat.widget.AppCompatimageButton.<init>(AppCompatimageButton.java:69)
        at androidx.appcompat.app.AppCompatViewInflater.createImageButton(AppCompatViewInflater.java:207)
        at androidx.appcompat.app.AppCompatViewInflater.createView(AppCompatViewInflater.java:123)
        at androidx.appcompat.app.AppCompatDelegateImpl.createView(AppCompatDelegateImpl.java:1407)
        at androidx.appcompat.app.AppCompatDelegateImpl.onCreateView(AppCompatDelegateImpl.java:1457)
        at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:681)
        at android.view.LayoutInflater.rInflate(LayoutInflater.java:752) 
        at android.view.LayoutInflater.rInflate(LayoutInflater.java:760) 
        at android.view.LayoutInflater.inflate(LayoutInflater.java:495) 
        at android.view.LayoutInflater.inflate(LayoutInflater.java:397) 
        at android.view.LayoutInflater.inflate(LayoutInflater.java:353) 
        at androidx.appcompat.app.AppCompatDelegateImpl.setContentView(AppCompatDelegateImpl.java:555) 
        at androidx.appcompat.app.AppCompatActivity.setContentView(AppCompatActivity.java:161) 
        at com.example.nearbypois.MainActivity.onCreate(MainActivity.kt:61) 
        at android.app.Activity.performCreate(Activity.java:5188) 
        at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1094) 
        at android.app.ActivityThread.performlaunchActivity(ActivityThread.java:2074) 
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2135) 
        at android.app.ActivityThread.access$700(ActivityThread.java:140) 
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1237) 
        at android.os.Handler.dispatchMessage(Handler.java:99) 
        at android.os.Looper.loop(Looper.java:137) 
        at android.app.ActivityThread.main(ActivityThread.java:4921) 
        at java.lang.reflect.Method.invokeNative(Native Method) 
        at java.lang.reflect.Method.invoke(Method.java:511) 
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1038) 
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:805) 
        at dalvik.system.NativeStart.main(Native Method) 

模块build.gradle文件读取

apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'

android {
    compileSdkVersion 28


    defaultConfig {
        applicationId "com.example.nearbypois"
        minSdkVersion 16
        targetSdkVersion 28
        versionCode 1
        versionName "1.0"

        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
        vectorDrawables.useSupportLibrary = true
    }

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

}

dependencies {
    implementation filetree(dir: 'libs',include: ['*.jar'])
    implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
    implementation 'androidx.appcompat:appcompat:1.1.0'
    implementation 'androidx.core:core-ktx:1.3.0'
    implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'androidx.test.ext:junit:1.1.1'
    androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'
    implementation 'androidx.recyclerview:recyclerview:1.1.0'
    implementation "androidx.cardview:cardview:1.0.0"
    implementation 'com.google.android.gms:play-services-location:17.0.0'
}

主布局文件(activity_main.xml)包含几个ImageButton,它们引用了诸如以下这样的可绘制对象:

<ImageButton
    android:id="@+id/btnGoBack"
    android:layout_width="0dp"
    android:layout_weight="1"
    android:layout_height="wrap_content"
    android:textAllCaps="false"
    app:srcCompat="@drawable/undo" />

MainActivity.kt中的onCreate开始如下:

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    AppCompatDelegate.setCompatVectorFromresourcesEnabled(true)
    setContentView(R.layout.activity_main)
    ...

我还需要做什么?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...