标签: android-d8

如何解决多个D8警告:找不到<Class X>,默认或静态接口方法是否需要使用<Class Y>?

从3.1.4升级到Android Gradle插件到3.2.x后,我收到多个警告,例如:

D8: Type `com.google.gson.reflect.TypeToken` was not found, it is required for default or static interface methods desugaring of `com.google.gson.reflect.TypeToken org.springframework.http.converter.json.GsonHttpMessageConverter.getTypeToken(java.lang.reflect.Type)`
D8: Type `com.squareup.okhttp.MediaType` was not found, it is required for default or static interface methods desugaring of `com.squareup.okhttp.MediaType org.springframework.http.client.OkHttpClientHttpRequest.getContentType(org.springframework.http.HttpHeaders)`
D8: Type `org.apache.http.impl.client.HttpClients` was not found, it is required for default or static interface methods desugaring of `void org.springframework.http.client.HttpComponentsClientHttpRequestFactory.<init>()`
D8: Interface `org.apache.http.HttpEntity` not found. It's needed to make sure desugaring of `org.springframework.http.client.HttpComponentsStreamingClientHttpRequest$StreamingHttpEntity` is correct. Desugaring will assume that this interface …
Run Code Online (Sandbox Code Playgroud)

android proguard android-gradle-plugin android-proguard android-d8

14
推荐指数
1
解决办法
6327
查看次数

D8和R8 android之间的区别

随着android studio推出了两款新工具D8和R8.根据谷歌文档D8是一个dex工具,R8是一个progourd工具,但由于他们的解释两​​者都做了几乎相同的事情如下:

D8是一个将java字节代码转换为dex代码的dexer.

R8是一个java程序缩小和缩小工具,它将java字节代码转换为优化的dex代码.

它似乎都将java字节代码逐字转换为dex代码.那么,实际上他们在转换dex代码时是在内部做什么的?

android dex android-d8 android-r8

10
推荐指数
3
解决办法
8113
查看次数

Code shrinker R8 crashes my Xamarin.Android app on startup with Unable to get provider com.google.firebase.provider.FirebaseInitProvider

I have a Xamarin.Android app which I recently switched to use R8 code shrinker. Unfortunately, my app is crashing on startup with the following error:

java.lang.RuntimeException: Unable to get provider com.google.firebase.provider.FirebaseInitProvider: java.lang.ClassNotFoundException: Didn’t find class “com.google.firebase.provider.FirebaseInitProvider” on path: DexPathList[[zip file “/data/app/app-bundle-1/base.apk”],nativeLibraryDirectories=[/data/app/app-bundle-1/lib/arm64, /data/app/app-bundle-1/base.apk!/lib/arm64-v8a, /system/lib64, /vendor/lib64]]
    at android.app.ActivityThread.installProvider(ActivityThread.java:6105)
    at android.app.ActivityThread.installContentProviders(ActivityThread.java:5572)
    at android.app.ActivityThread.handleBindApplication(ActivityThread.java:5511)
    at android.app.ActivityThread.-wrap2(ActivityThread.java)
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1611)
    at android.os.Handler.dispatchMessage(Handler.java:102)
    at android.os.Looper.loop(Looper.java:165)
    at android.app.ActivityThread.main(ActivityThread.java:6375)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:912)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:802)
Run Code Online (Sandbox Code Playgroud)

I found this article, it's more related to MultiDex and native android …

android xamarin.android android-multidex android-d8 android-r8

7
推荐指数
0
解决办法
1192
查看次数

Android R8 更新依赖项后出错

我已经更新了所有项目依赖项,并且收到了不同的 R8 错误。

AGPBI: {"kind":"error","text":"java.lang.NullPointerException","sources":[{}],"tool":"D8"}
org.gradle.workers.WorkerExecutionException: There was a failure while executing work items
    at org.gradle.workers.internal.DefaultWorkerExecutor.workerExecutionException(DefaultWorkerExecutor.java:267)
    at org.gradle.workers.internal.DefaultWorkerExecutor.await(DefaultWorkerExecutor.java:249)
    at com.android.build.gradle.internal.tasks.DexArchiveBuilderTaskDelegate.doProcess(DexArchiveBuilderTaskDelegate.kt:227)
    at com.android.build.gradle.internal.tasks.DexArchiveBuilderTask.doTaskAction(DexArchiveBuilderTask.kt:255)
    at com.android.build.gradle.internal.tasks.NewIncrementalTask$taskAction$$inlined$recordTaskAction$1.invoke(BaseTask.kt:69)
    at com.android.build.gradle.internal.tasks.Blocks.recordSpan(Blocks.java:51)
    at com.android.build.gradle.internal.tasks.NewIncrementalTask.taskAction(NewIncrementalTask.kt:46)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.base/java.lang.reflect.Method.invoke(Method.java:566)
    at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:104)
    at org.gradle.api.internal.project.taskfactory.IncrementalInputsTaskAction.doExecute(IncrementalInputsTaskAction.java:32)
    at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:51)
    at org.gradle.api.internal.project.taskfactory.AbstractIncrementalTaskAction.execute(AbstractIncrementalTaskAction.java:25)
    at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:29)
    at org.gradle.api.internal.tasks.execution.TaskExecution$3.run(TaskExecution.java:242)
    at org.gradle.internal.operations.DefaultBuildOperationRunner$1.execute(DefaultBuildOperationRunner.java:29)
    at org.gradle.internal.operations.DefaultBuildOperationRunner$1.execute(DefaultBuildOperationRunner.java:26)
    at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:66)
    at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:59)
    at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:157)
    at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:59)
    at org.gradle.internal.operations.DefaultBuildOperationRunner.run(DefaultBuildOperationRunner.java:47)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:68)
    at org.gradle.api.internal.tasks.execution.TaskExecution.executeAction(TaskExecution.java:227)
    at org.gradle.api.internal.tasks.execution.TaskExecution.executeActions(TaskExecution.java:210)
    at org.gradle.api.internal.tasks.execution.TaskExecution.executeWithPreviousOutputFiles(TaskExecution.java:193)
    at org.gradle.api.internal.tasks.execution.TaskExecution.execute(TaskExecution.java:171)
    at org.gradle.internal.execution.steps.ExecuteStep.executeInternal(ExecuteStep.java:89)
    at org.gradle.internal.execution.steps.ExecuteStep.access$000(ExecuteStep.java:40)
    at org.gradle.internal.execution.steps.ExecuteStep$1.call(ExecuteStep.java:53)
    at …
Run Code Online (Sandbox Code Playgroud)

android gradle android-multidex android-d8 android-r8

7
推荐指数
1
解决办法
1万
查看次数

r8.jar 位于 Android SDK 中的什么位置?

我正在尝试 Android 的D8 和 R8

正如文档所说,运行 D8 的命令如下:

java -jar build/libs/d8.jar --release --output out input.jar
Run Code Online (Sandbox Code Playgroud)

对于 R8:

java -jar build/libs/r8.jar --release --output out --pg-conf proguard.cfg input.jar
Run Code Online (Sandbox Code Playgroud)

我找到了d8.jar里面%ANDROID_HOME%\build-tools\28.0.3\lib,但我找不到r8.jar

r8.jarAndroid SDK 位于何处?

java android dx android-d8

5
推荐指数
1
解决办法
278
查看次数

如何在编译期间调试 R8?

有什么办法可以在编译 Android 项目时调试 R8 吗?

我有一个非常奇怪的错误,随意的修复无济于事

android android-d8 android-r8

2
推荐指数
1
解决办法
1061
查看次数

运行适用于 Android 的 dx 或 d8 工具时出错

我正在尝试从命令行手动构建 Android 应用程序。
但是,每当我运行位于 Android SDK build-tools 目录中的 dx.bat 命令时,我总是会收到错误。无论我给出哪个选项,我总是会遇到相同的错误。运行时dx --help,我收到此错误:
-Djava.ext.dirs=E:\.android\SDK\build-tools\29.0.2\lib is not supported. Use -classpath instead. Error: Could not create the Java Virtual Machine. Error: A fatal exception has occurred. Program will exit.

当我使用 Android Studio 时,我没有遇到任何此类问题。我犯了什么错误以及如何让 dx.bat 文件正常工作?

android dx android-d8

2
推荐指数
1
解决办法
2100
查看次数