在 Google Play 上发布应用程序时,出现错误:
错误 此版本不符合 64 位应用程序的 Google Play 要求。
以下 APK 或 App Bundle 可用于 64 位设备,但仅包含 32 位本机代码:203。
在您的应用程序中包含 64 位和 32 位本机代码。使用“Android App Bundle”发布格式确保每台设备只下载适合其架构的本机代码。这将有助于减小应用程序的整体大小。阅读更多…
为了修复错误,我ndk.abiFilters 'armeabi-v7a', 'arm64-v8a', 'x86', 'x86_64'
在 build.gradle 中使用了它。
但是 /lib/x86_64 和 /lib/arm64-v8a/ 目录中缺少其中一个库
下面是 APK Analyzer 的截图:
UPD 1 本机代码用于使用的库之一。下面我留下了依赖项,该库不是为 x64 构建的。
apply plugin: 'com.android.application'
apply plugin: "androidx.navigation.safeargs"
android {
signingConfigs {
release {
...
}
}
compileSdkVersion 29
defaultConfig {
applicationId 'ooo.cron.dagestan'
minSdkVersion 21
targetSdkVersion 29
multiDexEnabled true
versionCode 202
versionName "2.0.2"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
ndk {
ndk.abiFilters 'armeabi-v7a', 'arm64-v8a', 'x86', 'x86_64'
}
signingConfig signingConfigs.release
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
signingConfig signingConfigs.release
}
debug {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
signingConfig signingConfigs.release
}
}
compileOptions {
sourceCompatibility 1.8
targetCompatibility 1.8
}
}
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
...
implementation "com.github.lespinsideg:SimplePanorama:0.3.1"
...
implementation project(path: ':domain')
implementation project(path: ':data')
}
下面还有一段日志:
Caused by: java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/ooo.cron.dagestan-87Y2xvDJwseiKSW0mp1u5A==/base.apk"],nativeLibraryDirectories=[/data/app/ooo.cron.dagestan-87Y2xvDJwseiKSW0mp1u5A==/lib/arm64, /data/app/ooo.cron.dagestan-87Y2xvDJwseiKSW0mp1u5A==/base.apk!/lib/arm64-v8a, /system/lib64]]] couldn't find "libglues.so"
at java.lang.Runtime.loadLibrary0(Runtime.java:1012)
at java.lang.System.loadLibrary(System.java:1669)
at com.panoramagl.opengl.GLUES.<clinit>(GLUES.java:31)
at com.panoramagl.opengl.GLUES.gluNewQuadric(GLUES.java:38)
at com.panoramagl.PLQuadricPanoramaBase.initializeValues(PLQuadricPanoramaBase.java:43)
at com.panoramagl.PLSphericalPanorama.initializeValues(PLSphericalPanorama.java:37)
at com.panoramagl.PLObjectBase.<init>(PLObjectBase.java:28)
at com.panoramagl.PLObject.<init>(PLObject.java:44)
at com.panoramagl.PLRenderableElementBase.<init>(PLRenderableElementBase.java:27)
at com.panoramagl.PLSceneBase.<init>(PLSceneBase.java:40)
at com.panoramagl.PLPanoramaBase.<init>(PLPanoramaBase.java:32)
at com.panoramagl.PLQuadricPanoramaBase.<init>(PLQuadricPanoramaBase.java:26)
at com.panoramagl.PLSphericalPanorama.<init>(PLSphericalPanorama.java:31)
at com.lespinside.simplepanorama.view.SphericalView.setPanorama(SphericalView.java:74)
at ooo.cron.dagestan.fragments.PlaceAVFragment.setBitmap(PlaceAVFragment.java:65)
at ooo.cron.dagestan.activities.MainActivity.setPortraitBitmap(MainActivity.java:281)
at ooo.cron.dagestan.views.MainView$$State.setPortraitBitmap(MainView$$State.java:228)
at ooo.cron.dagestan.presenters.MainPresenter$3.onResourceReady(MainPresenter.java:685)
at ooo.cron.dagestan.presenters.MainPresenter$3.onResourceReady(MainPresenter.java:681)
at com.bumptech.glide.request.SingleRequest.onResourceReady(SingleRequest.java:582)
at com.bumptech.glide.request.SingleRequest.onResourceReady(SingleRequest.java:544)
at com.bumptech.glide.load.engine.EngineJob.callCallbackOnResourceReady(EngineJob.java:152)
at com.bumptech.glide.load.engine.EngineJob$CallResourceReady.run(EngineJob.java:398)
at android.os.Handler.handleCallback(Handler.java:873)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:201)
at android.app.ActivityThread.main(ActivityThread.java:6810)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:547)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:873)
2019-12-31 17:33:40.452 3336-3900/? E/PanoramaGL - PLRenderableElementBase::render: java.lang.NoClassDefFoundError: com.panoramagl.opengl.GLUES
at com.panoramagl.opengl.GLUES.gluUnProject(GLUES.java:205)
at com.panoramagl.PLSceneBase.createRayWithPoint(PLSceneBase.java:421)
at com.panoramagl.PLSceneBase.endRender(PLSceneBase.java:354)
at com.panoramagl.PLRenderableElementBase.render(PLRenderableElementBase.java:164)
at com.panoramagl.PLRenderer.renderScene(PLRenderer.java:266)
at com.panoramagl.PLRenderer.render(PLRenderer.java:316)
at com.panoramagl.PLRenderer.onDrawFrame(PLRenderer.java:476)
at android.opengl.GLSurfaceView$GLThread.guardedRun(GLSurfaceView.java:1575)
at android.opengl.GLSurfaceView$GLThread.run(GLSurfaceView.java:1270)
谢谢你,尤金克里文贾!在这种情况下,我下载了包含 x64 必要库的存档( 问题解决方案)。在 src/main jniLibs 文件夹中的所需模型中创建一个文件夹,并添加适当的文件,一切正常。