显然,R8删除了类和接口

问题描述

我正在尝试将DJI SDK集成到Android App(应用程序)中,但集成在单独的模块(djisdk)中:

Project Structure

问题在于编译完成后,“生成输出显示

Executing tasks: [clean,:djisdk:assembleDebug,:app:assembleDebug] in project ~/djisdk/example/android

> Task :clean
> Task :app:clean UP-TO-DATE
> Task :djisdk:clean UP-TO-DATE
> Task :djisdk:preBuild UP-TO-DATE
> Task :djisdk:extractProguardFiles
> Task :djisdk:preDebugBuild
> Task :djisdk:checkDebugManifest
> Task :djisdk:generateDebugBuildConfig
> Task :djisdk:generateDebugResValues
> Task :djisdk:mergeDebugShaders
> Task :djisdk:compileDebugShaders
> Task :djisdk:generateDebugAssets
> Task :djisdk:packageDebugAssets
> Task :djisdk:packageDebugRenderscript NO-SOURCE
> Task :djisdk:prepareLintJarForPublish UP-TO-DATE
> Task :djisdk:compileDebugAidl NO-SOURCE
> Task :djisdk:compileDebugRenderscript NO-SOURCE
> Task :djisdk:generateDebugResources
> Task :djisdk:packageDebugResources
> Task :djisdk:processDebugManifest
> Task :djisdk:parseDebugLibraryResources
> Task :djisdk:processDebugJavaRes NO-SOURCE
> Task :djisdk:mergeDebugJniLibFolders
> Task :djisdk:generateDebugLibraryProguardRules
> Task :app:compileFlutterBuildDebug
> Task :djisdk:mergeDebugNativeLibs
> Task :djisdk:stripDebugDebugSymbols
> Task :djisdk:transformNativeLibsWithSyncJniLibsForDebug
> Task :app:packLibsFlutterBuildDebug
> Task :app:preBuild UP-TO-DATE
> Task :app:extractProguardFiles
> Task :app:preDebugBuild
> Task :app:compileDebugAidl NO-SOURCE
> Task :djisdk:generateDebugRFile
> Task :djisdk:compileDebugKotlin
> Task :app:checkDebugManifest
> Task :app:compileDebugRenderscript NO-SOURCE
> Task :app:generateDebugBuildConfig
> Task :app:cleanMergeDebugAssets UP-TO-DATE
> Task :djisdk:javaprecompiledebug
> Task :djisdk:compileDebugJavaWithJavac
> Task :djisdk:extractDebugAnnotations
> Task :djisdk:mergeDebugGeneratedProguardFiles UP-TO-DATE
> Task :djisdk:mergeDebugConsumerProguardFiles UP-TO-DATE
> Task :djisdk:compileDebugSources
> Task :app:mergeDebugShaders
> Task :app:compileDebugShaders
> Task :app:generateDebugAssets
> Task :app:mergeDebugAssets
> Task :app:copyFlutterAssetsDebug
> Task :app:mainApkListPersistenceDebug
> Task :djisdk:mergeDebugJavaResource
> Task :djisdk:transformClassesAndResourcesWithR8ForDebug
> Task :djisdk:transformClassesAndResourcesWithSyncLibJarsForDebug
> Task :djisdk:bundleDebugAar
> Task :djisdk:assembleDebug
> Task :app:generateDebugResValues
> Task :app:generateDebugResources
> Task :app:createDebugCompatibleScreenManifests
> Task :app:processDebugManifest
> Task :app:mergeDebugResources
warn: removing resource com.djisdk_example:dimen/offline_map_header_bar_title_size without required default value.
warn: removing resource com.djisdk_example:dimen/offline_map_manager_title_size without required default value.

> Task :app:processDebugResources
> Task :app:validateSigningDebug
> Task :app:signingConfigWriterDebug
> Task :djisdk:bundleLibCompileDebug
> Task :app:compileDebugKotlin
> Task :app:mergeDebugJniLibFolders
> Task :djisdk:transformNativeLibsWithIntermediateJniLibsForDebug
> Task :djisdk:bundleLibResDebug
> Task :app:javaprecompiledebug
> Task :app:compileDebugJavaWithJavac
> Task :app:compileDebugSources
> Task :app:mergeDebugGeneratedProguardFiles UP-TO-DATE
> Task :app:processDebugJavaRes NO-SOURCE
> Task :djisdk:bundleLibRuntimeDebug
> Task :app:mergeDebugJavaResource

> Task :app:transformClassesAndResourcesWithR8ForDebug
AGPBI: {"kind":"warning","text":"Missing class: dji.sdk.util.VideoSizeCalculatorUtil$VideoSizeListener","sources":[{}],"tool":"R8"}
AGPBI: {"kind":"warning","text":"Missing class: dji.thirdparty.afinal.core.AsyncTask","text":"Missing class: com.dji.mapkit.core.maps.DJIMapView$OnDJIMapReadyCallback","text":"Missing class: dji.thirdparty.okhttp3.RequestBody","text":"Missing class: dji.keysdk.callback.ActionCallback","text":"Missing class: android.view.WindowInsetsAnimation$Callback","text":"Missing class: dji.common.util.CommonCallbacks$CompletionCallbackWith","text":"Missing class: com.dji.mapkit.core.maps.DJIMap$OnMarkerClickListener","text":"Missing class: com.here.android.mpa.common.OnEngineInitListener","text":"Missing class: dji.sdk.camera.Camera$HistogramCallback","text":"Missing class: dji.sdk.accessory.speaker.TransmissionListener","text":"Missing class: dji.thirdparty.io.reactivex.Observable","text":"Missing class: dji.sdk.camera.VideoFeeder$VideoDataListener","text":"Missing class: dji.thirdparty.okhttp3.Callback","text":"Missing class: dji.common.flightcontroller.simulator.SimulatorState$Callback","text":"Missing class: dji.common.accessory.SpeakerState$Callback","text":"Missing class: dji.thirdparty.io.reactivex.disposables.disposable","text":"Missing class: dji.thirdparty.okhttp3.Interceptor","text":"Missing class: dji.keysdk.callback.GetCallback","text":"Missing class: dji.common.util.CommonCallbacks$CompletionCallback","text":"Missing class: dji.thirdparty.io.reactivex.Observer","text":"Missing class: dji.sdk.sdkmanager.DJIsdkmanager$sdkmanagerCallback","text":"Missing class: dji.common.flightcontroller.FlightControllerState$Callback","text":"Missing class: dji.keysdk.callback.KeyListener","text":"Missing class: dji.common.flightcontroller.flyzone.FlyZonestate$Callback","text":"Missing class: dji.common.util.CommonCallbacks$CompletionCallbackWithTwoParam","text":"Missing class: dji.sdk.mission.waypoint.WaypointMissionoperatorListener","text":"Missing class: dji.keysdk.callback.SetCallback","text":"Missing class: dji.thirdparty.okhttp3.ResponseBody","tool":"R8"}

> Task :app:mergeDebugNativeLibs

> Task :app:stripDebugDebugSymbols
Unable to strip library '~/djisdk/example/build/app/intermediates/merged_native_libs/debug/out/lib/mips/libmapBox-gl.so' due to missing strip tool for ABI 'MIPS'. Packaging it as is.
Unable to strip library '~/djisdk/example/build/app/intermediates/merged_native_libs/debug/out/lib/armeabi/libmapBox-gl.so' due to missing strip tool for ABI 'ARMEABI'. Packaging it as is.
Unable to strip library '~/djisdk/example/build/app/intermediates/merged_native_libs/debug/out/lib/armeabi/libAMapSDK_MAP_v6_9_2.so' due to missing strip tool for ABI 'ARMEABI'. Packaging it as is.

> Task :app:packageDebug
> Task :app:assembleDebug

BUILD SUCCESSFUL in 1m 2s
63 actionable tasks: 56 executed,7 up-to-date

在这里您可以看到任务 app:transformClassesAndResourcesWithR8ForDebug 正在发出有关“缺少类”的警告

我尝试什么:

  1. 禁用minify(minifyEnabled为false)

    问题是相同的

  2. 在app和djisdk模块中添加proguard规则

    buildTypes {
        release {
            // Todo: Add your own signing config for the release build.
            signingConfig signingConfigs.debug
        }
        debug {
            minifyEnabled true
            proguardFiles getDefaultProguardFile('proguard-android.txt'),'proguard-rules.pro'
        }
    }
    

    护卫者规则

    -keep class dji.** { *; }
    -keep class com.dji.** { *; }
    -keep class com.djisdk.** { *; }
    

我怀疑在djisdk模块( djisdk:transformClassesAndResourcesWithR8ForDebug )中运行相同任务时会发生问题,但我不知道如何解决

如果有人在处理此类问题上有更多经验,我将非常感谢您的帮助

解决方法

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

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

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