如何解决“无法将索引2的值转换为尺寸:type = 0x1c”

时间:2019-07-22 19:48:47

标签: android android-studio android-9.0-pie

我的移动应用程序在Android 5.1(API 22)上运行良好。升级到Android 9.0 Pie(Andoid 28)后,我可以构建我的APK(构建成功),但是在移动设备上启动应用程序时,访问身份验证屏幕后它将崩溃。问题似乎与转换有关:启动MenuDrawer类以在屏幕上显示Google Map后,“索引2到维的值:类型= 0x1c”。

我试图在gradle中更新构建工具版本,并测试了另一个移动版但相同的问题。

尝试了什么:

  • 使用另一台手机发布(相同问题)
  • 更新gradle(projet和移动)
  • 调试

显示梯度移动:

apply plugin: 'com.android.application'
android {
    //compileSdkVersion 22
    compileSdkVersion 28
        defaultConfig {
        applicationId "ant.h2h.feelsafe"
        minSdkVersion 21
        // net.simonvt needs android.util.floatmath which has been removed since API 23
        targetSdkVersion 28
        multiDexEnabled true
        versionCode 16
        versionName "3.15"
    }
    signingConfigs {
        release {
            storeFile file("h2h-feelsafe-free.keystore")
            storePassword "feelsafe!"
            keyAlias "h2h_free"
            keyPassword "feelsafe!"
        }
    }
    buildTypes {
        release {
            minifyEnabled true
            signingConfig signingConfigs.release
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
      }
    }
    // reduce apk size by not loading libraries translation and resources we do not even support in
    // our app.
    defaultConfig {
        resConfigs "en", "de", "fr", "it"
    }
    splits {
        density {
            enable true
            exclude "tvdpi", "xxxhdpi"
            compatibleScreens 'small', 'normal', 'large'
        }

        // TODO: use something up to date (see Referent.java)
        //useLibrary 'org.apache.http.legacy'
    }

    // Local binary dependencies
    dependencies {
        implementation fileTree(dir: 'libs', include: ['*.jar'])
        wearApp project(':wear')
        implementation 'com.google.android.gms:play-services:10.2.1'
        implementation 'com.kbeanie:image-chooser-library:1.3.52@aar'
        implementation 'net.simonvt.menudrawer:menudrawer:3.0.6'
        implementation 'com.google.android.gms:play-services-ads:10.2.1'
        implementation 'com.google.android.gms:play-services-identity:10.2.1'
        implementation 'com.google.android.gms:play-services-gcm:10.2.1'
        implementation 'com.google.android.gms:play-services-maps:10.2.1'
        implementation 'com.google.firebase:firebase-core:10.2.1'
    }
    buildToolsVersion '28.0.3'
}
apply plugin: 'com.google.gms.google-services'

// Remote binary dependencies
dependencies {
    implementation files('libs/httpcore-4.3.jar')
    implementation files('libs/httpclient-4.2.3.jar')
    implementation 'com.android.support:appcompat-v7:28.0.0'
    implementation 'com.android.support:support-v4:28.0.0'

1 个答案:

答案 0 :(得分:0)

该问题似乎出在您使用的菜单抽屉库中。我查看了他们的问题页面,发现有一个开放的问题,几个人都遇到相同的错误。

https://github.com/SimonVT/android-menudrawer/issues/270

我还检查了您的图片选择器库,并且他们的问题页面没有对此错误的任何引用。

另外,您的gradle文件包含以下行:

  

// net.simonvt需要android.util.floatmath,该API自API 23以来已被删除。

这是指您的菜单抽屉库。 我不知道这是故意的还是粘贴的片段,但您也应该对此进行研究。如果您将targetdk设置为高于23,则您的库将无法使用已删除的api。

给所有人的提示:如果更新sdk版本后代码中断,并且在代码中找不到任何问题,请检查所使用的库是否与较新版本兼容。并且不要忘记查看github上的Issues页面。