bilibili / ijkplayer

Android/iOS video player based on FFmpeg n3.4, with MediaCodec, VideoToolbox support.
GNU General Public License v2.0
32.41k stars 8.11k forks source link

after adding tv.danmaku.ijk.media:ijkplayer got 64 bit compliant error #4876

Open chacha-ghar-kab-jayenge opened 4 years ago

chacha-ghar-kab-jayenge commented 4 years ago

I have added all the Gradle dependency from following URL:- https://android-arsenal.com/details/1/530

implementation 'tv.danmaku.ijk.media:ijkplayer-java:0.8.8'
implementation 'tv.danmaku.ijk.media:ijkplayer-armv7a:0.8.8'
implementation 'tv.danmaku.ijk.media:ijkplayer-arm64:0.8.8'
implementation 'tv.danmaku.ijk.media:ijkplayer-x86:0.8.8'
implementation 'tv.danmaku.ijk.media:ijkplayer-x86_64:0.8.8'
implementation 'tv.danmaku.ijk.media:ijkplayer-exo:0.8.8' 

So that my app will be supported by 32 bit as well as a 64-bit device. app is working fine but when i am uploading it on google play store I got following error:-

this release is not compliant with the google play 64-bit requirement

my complete gradle is following:-

apply plugin: 'com.android.application'

android { compileSdkVersion 29 defaultConfig { applicationId "xxx.xx.xxx" minSdkVersion 21 targetSdkVersion 29 versionCode 1 versionName "1.0" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"

    ndk {
        // config you want to support device
        abiFilters 'arm64-v8a', 'armeabi', 'armeabi-v7a', 'x86'
    }
}

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

}

dependencies { implementation fileTree(dir: 'libs', include: ['*.jar']) implementation 'androidx.appcompat:appcompat:1.1.0' implementation 'androidx.constraintlayout:constraintlayout:1.1.3'

implementation 'tv.danmaku.ijk.media:ijkplayer-java:0.8.8'
implementation 'tv.danmaku.ijk.media:ijkplayer-armv7a:0.8.8'
implementation 'tv.danmaku.ijk.media:ijkplayer-arm64:0.8.8'
implementation 'tv.danmaku.ijk.media:ijkplayer-x86:0.8.8'
implementation 'tv.danmaku.ijk.media:ijkplayer-x86_64:0.8.8'
implementation 'tv.danmaku.ijk.media:ijkplayer-exo:0.8.8'

testImplementation 'junit:junit:4.12'
androidTestImplementation 'androidx.test.ext:junit:1.1.1'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'

}

Please check this issue because arm64-v8a,armeabi-v7a all file is generated under lib folder (i check by analyze the apk) but unable to upload on playstore.

error

master255 commented 4 years ago

'arm64-v8a' - this is arm64. This line ndk { // config you want to support device abiFilters 'arm64-v8a', 'armeabi', 'armeabi-v7a', 'x86' } means that you exclude arm64 from the release. You need to remove 'arm64-v8a', and recompile the project.

chacha-ghar-kab-jayenge commented 4 years ago

'arm64-v8a' - this is arm64. This line ndk { // config you want to support device abiFilters 'arm64-v8a', 'armeabi', 'armeabi-v7a', 'x86' } means that you exclude arm64 from the release. You need to remove 'arm64-v8a', and recompile the project.

If I remove arm64-v8a from abifilter then no arm64-v8 is generated under the lib folder and to support a 64-bit device we need that binary.

tolew1 commented 4 years ago

You are only supporting x86 which is 32bit. New rules state if you support 32 bit arch you have to support 64bit too. so you need to add the 64 bit version also. You are already including it with this line implementation 'tv.danmaku.ijk.media:ijkplayer-x86_64:0.8.8'

you just need to add it to ndk. Like this.

ndk {
        // config you want to support device
        abiFilters 'arm64-v8a', 'armeabi', 'armeabi-v7a', 'x86', 'x86_64'
    }

fyi For arm arch, arm64-v8a is the 64bit version of armeabi-v7a, so those 2 should be fine.