koral-- / android-gif-drawable

Views and Drawable for displaying animated GIFs on Android
Other
9.54k stars 1.78k forks source link

Error inflating class pl.droidsonroids.gif.GifImageView in android 4.4.4 #570

Closed Android-xiaole closed 6 years ago

Android-xiaole commented 6 years ago

java.lang.RuntimeException: Unable to start activity ComponentInfo{com.chile.fastloan/com.chile.fastloan.activity.Act_LoanDetail}: android.view.InflateException: Binary XML file line #265: Error inflating class pl.droidsonroids.gif.GifImageView at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2197) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2257) at android.app.ActivityThread.access$800(ActivityThread.java:143) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1209) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:136) at android.app.ActivityThread.main(ActivityThread.java:5120) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:515) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:818) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:634) at de.robv.android.xposed.XposedBridge.main(XposedBridge.java:132) at dalvik.system.NativeStart.main(Native Method) Caused by: android.view.InflateException: Binary XML file line #265: Error inflating class pl.droidsonroids.gif.GifImageView at android.view.LayoutInflater.createView(LayoutInflater.java:620) at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:696) at android.view.LayoutInflater.rInflate(LayoutInflater.java:755) at android.view.LayoutInflater.rInflate(LayoutInflater.java:758) at android.view.LayoutInflater.rInflate(LayoutInflater.java:758) at android.view.LayoutInflater.rInflate(LayoutInflater.java:758) at android.view.LayoutInflater.rInflate(LayoutInflater.java:758) at android.view.LayoutInflater.inflate(LayoutInflater.java:492) at de.robv.android.xposed.XposedBridge.invokeOriginalMethodNative(Native Method) at de.robv.android.xposed.XposedBridge.handleHookedMethod(XposedBridge.java:631) at android.view.LayoutInflater.inflate(Native Method) at android.view.LayoutInflater.inflate(LayoutInflater.java:397) at android.view.LayoutInflater.inflate(LayoutInflater.java:353) at android.support.v7.app.AppCompatDelegateImplV9.setContentView(AppCompatDelegateImplV9.java:287) at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:139) at com.le.base.BaseActivity.onCreate(BaseActivity.java:70) at android.app.Activity.performCreate(Activity.java:5351) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2161) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2257)  at android.app.ActivityThread.access$800(ActivityThread.java:143)  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1209)  at android.os.Handler.dispatchMessage(Handler.java:102)  at android.os.Looper.loop(Looper.java:136)  at android.app.ActivityThread.main(ActivityThread.java:5120)  at java.lang.reflect.Method.invokeNative(Native Method)  at java.lang.reflect.Method.invoke(Method.java:515)  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:818)  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:634)  at de.robv.android.xposed.XposedBridge.main(XposedBridge.java:132)  at dalvik.system.NativeStart.main(Native Method)  Caused by: java.lang.reflect.InvocationTargetException at java.lang.reflect.Constructor.constructNative(Native Method) at java.lang.reflect.Constructor.newInstance(Constructor.java:423) at android.view.LayoutInflater.createView(LayoutInflater.java:594) at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:696)  at android.view.LayoutInflater.rInflate(LayoutInflater.java:755)  at android.view.LayoutInflater.rInflate(LayoutInflater.java:758)  at android.view.LayoutInflater.rInflate(LayoutInflater.java:758)  at android.view.LayoutInflater.rInflate(LayoutInflater.java:758)  at android.view.LayoutInflater.rInflate(LayoutInflater.java:758)  at android.view.LayoutInflater.inflate(LayoutInflater.java:492)  at de.robv.android.xposed.XposedBridge.invokeOriginalMethodNative(Native Method)  at de.robv.android.xposed.XposedBridge.handleHookedMethod(XposedBridge.java:631)  at android.view.LayoutInflater.inflate(Native Method)  at android.view.LayoutInflater.inflate(LayoutInflater.java:397)  at android.view.LayoutInflater.inflate(LayoutInflater.java:353)  at android.support.v7.app.AppCompatDelegateImplV9.setContentView(AppCompatDelegateImplV9.java:287)  at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:139)  at com.le.base.BaseActivity.onCreate(BaseActivity.java:70)  at android.app.Activity.performCreate(Activity.java:5351)  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2161)  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2257)  at android.app.ActivityThread.access$800(ActivityThread.java:143)  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1209)  at android.os.Handler.dispatchMessage(Handler.java:102)  at android.os.Looper.loop(Looper.java:136)  at android.app.ActivityThread.main(ActivityThread.java:5120)  at java.lang.reflect.Method.invokeNative(Native Method)  at java.lang.reflect.Method.invoke(Method.java:515)  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:818)  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:634)  at de.robv.android.xposed.XposedBridge.main(XposedBridge.java:132)  at dalvik.system.NativeStart.main(Native Method)  Caused by: java.lang.VerifyError: pl/droidsonroids/gif/GifInfoHandle at pl.droidsonroids.gif.GifDrawable.(GifDrawable.java:158) at pl.droidsonroids.gif.GifDrawable.(GifDrawable.java:93) at pl.droidsonroids.gif.GifViewUtils.setResource(GifViewUtils.java:52) at pl.droidsonroids.gif.GifViewUtils$GifImageViewAttributes.getResourceId(GifViewUtils.java:137) at pl.droidsonroids.gif.GifViewUtils$GifImageViewAttributes.(GifViewUtils.java:123) at pl.droidsonroids.gif.GifViewUtils.initImageView(GifViewUtils.java:30) at pl.droidsonroids.gif.GifImageView.(GifImageView.java:41) at java.lang.reflect.Constructor.constructNative(Native Method)  at java.lang.reflect.Constructor.newInstance(Constructor.java:423)  at android.view.LayoutInflater.createView(LayoutInflater.java:594)  at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:696)  at android.view.LayoutInflater.rInflate(LayoutInflater.java:755)  at android.view.LayoutInflater.rInflate(LayoutInflater.java:758)  at android.view.LayoutInflater.rInflate(LayoutInflater.java:758)  at android.view.LayoutInflater.rInflate(LayoutInflater.java:758)  at android.view.LayoutInflater.rInflate(LayoutInflater.java:758)  at android.view.LayoutInflater.inflate(LayoutInflater.java:492)  at de.robv.android.xposed.XposedBridge.invokeOriginalMethodNative(Native Method)  at de.robv.android.xposed.XposedBridge.handleHookedMethod(XposedBridge.java:631)  at android.view.LayoutInflater.inflate(Native Method)  at android.view.LayoutInflater.inflate(LayoutInflater.java:397)  at android.view.LayoutInflater.inflate(LayoutInflater.java:353)  at android.support.v7.app.AppCompatDelegateImplV9.setContentView(AppCompatDelegateImplV9.java:287)  at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:139)  at com.le.base.BaseActivity.onCreate(BaseActivity.java:70)  at android.app.Activity.performCreate(Activity.java:5351)  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2161)  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2257)  at android.app.ActivityThread.access$800(ActivityThread.java:143)  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1209)  at android.os.Handler.dispatchMessage(Handler.java:102)  at android.os.Looper.loop(Looper.java:136)  at android.app.ActivityThread.main(ActivityThread.java:5120)  at java.lang.reflect.Method.invokeNative(Native Method)  at java.lang.reflect.Method.invoke(Method.java:515)  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:818)  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:634)  at de.robv.android.xposed.XposedBridge.main(XposedBridge.java:132)  at dalvik.system.NativeStart.main(Native Method) 

my xml:<pl.droidsonroids.gif.GifImageView android:id="@+id/gifView" android:layout_width="208px" android:layout_height="208px" android:layout_marginRight="20px" android:src="@drawable/img_productdetail_gif" android:layout_gravity="right" />

and i have used multiDex my gradle: apply plugin: 'com.android.application' apply plugin: 'com.mob.sdk' apply plugin: 'org.greenrobot.greendao'

android { compileSdkVersion 27 buildToolsVersion '28.0.1' defaultConfig { applicationId "com.chile.fastloan"

    minSdkVersion 16
    targetSdkVersion 26
    versionCode 5
    versionName "1.2"
    flavorDimensions "versionCode"
    testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    multiDexEnabled true

    ndk {
        //选择要添加的对应cpu类型的.so库。
        abiFilters 'armeabi', 'armeabi-v7a', 'arm64-v8a'
        // 还可以添加 'x86', 'x86_64', 'mips', 'mips64'
    }

    manifestPlaceholders = [
            JPUSH_PKGNAME : "com.chile.fastloan",
            JPUSH_APPKEY : "ea417ffb43a5ec62fea0098c", //JPush上注册的包名对应的appkey.
            JPUSH_CHANNEL : "developer-default", //暂时填写默认值即可.
    ]
}

//签名配置
signingConfigs {
    release {
        storeFile file('../xunjiedai.jks')
        keyAlias 'xjd'
        keyPassword 'xunjiedai'
        storePassword 'xunjiedai'
    }
}

buildTypes {
    release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        //是否移除无用资源
        zipAlignEnabled true
        signingConfig signingConfigs.release
    }
}

greendao {
    schemaVersion 1  //版本
    daoPackage 'com.chile.fastloan.greendao' // 一般为app包名+生成文件的文件夹名
    targetGenDir 'src/main/java' //生成文件路径
}

MobSDK {
    appKey "20a08b54bbba9"
    appSecret "7a404f7dae1dd6773493dc504ef56295"

    ShareSDK {
        gui false
        //平台配置信息
        devInfo {
            SinaWeibo {
                appKey "3222856981"
                appSecret "95bf3401ed27fc987f4806e2af51d4c0"
                callbackUri "http://www.baidu.com"
                shareByAppClient true
            }
            Wechat {
                appId "wx0f72698e29f59ce0"
                appSecret "bac3e7a6e5928e40430be09b6811db06"
            }
            WechatMoments {
                appId "wx0f72698e29f59ce0"
                appSecret "bac3e7a6e5928e40430be09b6811db06"
            }
            QQ {
                appId "1106937504"
                appKey "zHyaPgSsxVba99xs"
                shareByAppClient true
            }
            QZone {
                appId "1106937504"
                appKey "zHyaPgSsxVba99xs"
                shareByAppClient true
            }
            Yixin {
                appId "yx086483df7e7f40648f4832e1c7e699f0"
            }
            YixinMoments {
                appId "yx086483df7e7f40648f4832e1c7e699f0"
            }
        }
    }

}

}

dependencies { implementation fileTree(include: ['*.jar'], dir: 'libs') implementation 'com.android.support:appcompat-v7:27.1.1' testImplementation 'junit:junit:4.12' androidTestImplementation 'com.android.support.test:runner:1.0.2' androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2' annotationProcessor rootProject.ext.dependencies.butterKnifeCompiler implementation project(':public_jar') implementation project(':toolBar') implementation project(':tabbar') implementation 'com.android.support:multidex:1.0.1' implementation 'com.android.support:recyclerview-v7:27.1.1'

//retrofit2
implementation 'com.squareup.retrofit2:retrofit:2.4.0'
implementation 'com.squareup.retrofit2:adapter-rxjava2:2.3.0'
implementation 'com.squareup.retrofit2:converter-gson:2.0.2'

//compile 'com.google.code.gson:gson:2.8.2'

//rxjava
implementation 'io.reactivex.rxjava2:rxjava:2.1.12'

//rxandroid
implementation 'io.reactivex.rxjava2:rxandroid:2.0.2'

//各类选择器
implementation 'com.contrarywind:Android-PickerView:4.1.2'

//glide 使用的时候需要注意将V7包版本指向27 不然会和我的tabbar的库产生编译错误
implementation 'com.github.bumptech.glide:glide:4.7.1'
annotationProcessor 'com.github.bumptech.glide:compiler:4.7.1'

//危险权限管理
implementation 'com.yanzhenjie:permission:2.0.0-rc11'

//EventBus
implementation 'org.greenrobot:eventbus:3.1.1'

//仿IOS弹窗
implementation 'com.bigkoo:alertview:1.0.3'

//photoview
implementation 'com.github.chrisbanes:PhotoView:2.0.0'

//tencent bugly
implementation 'com.tencent.bugly:crashreport:2.6.6'

//ocr图像技术识别手机号码

//    implementation 'com.rmtheis:tess-two:9.0.0'

//recycleview adapter库
implementation 'com.github.CymChad:BaseRecyclerViewAdapterHelper:2.9.30'

//greendao 数据库管理
implementation 'org.greenrobot:greendao:3.2.2'

//JPush
implementation 'cn.jiguang.sdk:jpush:3.1.1'
implementation 'cn.jiguang.sdk:jcore:1.1.9'
implementation project(':ocr_ui')
implementation files('libs/libs/BaiduLBS_Android.jar')

//load gif

//    implementation ("pl.droidsonroids.gif:android-gif-drawable:1.2.14") {

//        exclude(module: 'android-gif-drawable-native-armeabi')

//    }
implementation 'pl.droidsonroids.gif:android-gif-drawable:1.2.14'

// https://mvnrepository.com/artifact/com.google.zxing/core
implementation 'com.google.zxing:core:3.3.3'

}

my application: package com.chile.fastloan;

import android.app.Application; import android.content.Context; import android.database.sqlite.SQLiteDatabase; import android.support.multidex.MultiDex;

import com.baidu.mapapi.SDKInitializer; import com.chile.fastloan.greendao.DaoMaster; import com.chile.fastloan.greendao.DaoSession; import com.chile.fastloan.utils.IDCardOCRUtil; import com.chile.fastloan.utils.SharedPreferencesUtil; import com.le.base.BaseApplication; import com.le.base.BaseConfig; import com.tencent.bugly.crashreport.CrashReport; import com.umeng.analytics.MobclickAgent; import com.umeng.commonsdk.UMConfigure;

import cn.jpush.android.api.JPushInterface;

/**

public class XunjieApplication extends BaseApplication{ private DaoMaster.DevOpenHelper mHelper; private SQLiteDatabase db; private DaoMaster mDaoMaster; private DaoSession mDaoSession;

private static XunjieApplication instance;

@Override
public void onCreate() {
    super.onCreate();
    instance = this;
    initPrefs();
    CrashReport.initCrashReport(getApplicationContext(), "e4ef2305e4", BaseConfig.DEBUG);
    UMConfigure.init(this ,UMConfigure.DEVICE_TYPE_PHONE,"");
    UMConfigure.setLogEnabled(BaseConfig.DEBUG);
    /**
     * 设置日志加密
     * 参数:boolean 默认为false(不加密)
     */
    UMConfigure.setEncryptEnabled(true);
    MobclickAgent.openActivityDurationTrack(false);//禁止默认的页面统计功能,采用自定义的页面统计

    JPushInterface.setDebugMode(BaseConfig.DEBUG);
    JPushInterface.init(this);
    SDKInitializer.initialize(this);
}

public static XunjieApplication getInstance(){
    return instance;
}

/**
 * 初始化SharedPreference
 */
protected void initPrefs() {
    SharedPreferencesUtil.init(getApplicationContext(), getPackageName() + "_preference", Context.MODE_MULTI_PROCESS);
}

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

/**
 * 设置greenDao
 */
private void setDatabase() {
    // 通过 DaoMaster 的内部类 DevOpenHelper,你可以得到一个便利的 SQLiteOpenHelper 对象。
    // 可能你已经注意到了,你并不需要去编写「CREATE TABLE」这样的 SQL 语句,因为 greenDAO 已经帮你做了。
    // 注意:默认的 DaoMaster.DevOpenHelper 会在数据库升级时,删除所有的表,意味着这将导致数据的丢失。
    // 所以,在正式的项目中,你还应该做一层封装,来实现数据库的安全升级。
    mHelper = new DaoMaster.DevOpenHelper(this, "xunjiedai-db", null);
    db = mHelper.getWritableDatabase();
    // 注意:该数据库连接属于 DaoMaster,所以多个 Session 指的是相同的数据库连接。
    mDaoMaster = new DaoMaster(db);
    mDaoSession = mDaoMaster.newSession();
}
public DaoSession getDaoSession() {
    return mDaoSession;
}
public SQLiteDatabase getDb() {
    return db;
}

}

koral-- commented 6 years ago

What is the device?

Android-xiaole commented 6 years ago

Chinese mobile phone like oppo、ZTE and android OS Lower than 5.0

iceuncle commented 6 years ago

me too

koral-- commented 6 years ago

OK, thanks I'll check that.

koral-- commented 6 years ago

Fixed in 1.2.15