小编dic*_*nus的帖子

将带有 proguard 的 Android 项目迁移到 R8,缺少 rt.java 文件,Android Studio 4.2

我将 Android Studio 版本从 4.1 更新到 4.2,但该项目未编译,因为 Proguard 版本非常旧(4.7)并且与 Java 10 不兼容,但是我决定将项目从 proguard 迁移到 R8,但该项目由于此错误而无法编译:

File not found: /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/lib/rt.jar

然后我将 R8 设置为 false 并使用 Proguard 将这一行添加到我的 build.gradle 中,以便将我的 Proguard 更新到更高版本:

classpath 'net.sf.proguard:proguard-gradle:6.1.1'

但我仍然遇到了同样的错误,而不是第一个告诉我更新新版本的 Proguard 的错误。

那么我该如何修复 rt.jar 呢?也许一个 AS 版本和另一个 AS 版本之间的某些目录发生了变化?,如果我将 android studio 降级到 4.1 并恢复我所做的所有更改,该项目工作正常,但我想升级 Android Studio。

android jar proguard android-studio android-r8

8
推荐指数
1
解决办法
1522
查看次数

com.segment.analytics.android:Google Play 控制台上我的应用程序中的分析不兼容版本

我的应用程序是用 Android 本机代码编写的,我在 Play 商店控制台上收到此警告

您的应用程序“appName”版本代码“xxxx”包含 SDK com.segment.analytics.android:analytics或您的库之一所依赖的 SDK,它收集个人或敏感数据,包括但可能不限于广告 ID、Android ID 标识符。持久性设备标识符不得链接到用户数据政策中所述的其他个人和敏感用户数据或可重置设备标识符。

所需操作:上传新的合规版本并停用不合规版本。

但我的项目中没有该库,我拥有的与 firebase 相关的唯一库是这些:

"com.google.firebase:firebase-crashlytics:17.4.0",
"com.google.firebase:firebase-analytics:18.0.2",
"com.google.firebase:firebase-perf:20.0.2",
"com.google.firebase:firebase-core:18.0.0",
"com.google.firebase:firebase-auth:20.0.1",
"com.google.firebase:firebase-messaging:21.0.1",

Run Code Online (Sandbox Code Playgroud)

但我不知道如何解决这个问题,我应该更新所有这些并再次上传我的应用程序,然后检查我是否再次收到此警告,看看它是否已解决?我需要解决这个问题,因为我将无法在接下来的几个月内上传更多应用程序版本。

谢谢你的帮助,真的很感激。

android google-analytics firebase google-developers-console segment-analytics

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

将 com.google.android.gms:play-services-location 更新到 21.0.1 时出现 ANR 错误

我最近将 Android 项目更新到 Android 33,并将依赖项 com.google.android.gms:play-services-location 从版本 20.0.0 更新到 21.0.1 后遇到了问题。我的项目编译没有任何问题,但是当用户在我的应用程序中打开查找电话屏幕时,屏幕冻结,并且我收到 ANR(应用程序未响应)错误。

这是我的 Gradle 项目应用程序文件的相关部分:

dependencies {
    classpath 'com.android.tools.build:gradle:8.1.0'
    classpath "com.google.gms:google-services:4.3.15"
    classpath "com.google.firebase:firebase-crashlytics-gradle:2.9.8"
    classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
    classpath "com.google.firebase:firebase-appdistribution-gradle:4.0.0"
    classpath "org.jetbrains.kotlin:kotlin-serialization:1.6.0"
    classpath 'com.google.firebase:perf-plugin:1.4.2'
  }
Run Code Online (Sandbox Code Playgroud)

Gradle 模块应用程序依赖项:

playServiceAuth             : "com.google.android.gms:play-services-auth:20.6.0",
          playServiceApiPhone         : "com.google.android.gms:play-services-auth-api-phone:18.0.1",
          playServiceAnalytics        : "com.google.android.gms:play-services-analytics:18.0.3",
          playServiceBase             : "com.google.android.gms:play-services-base:18.2.0",
          playServiceLocation         : "com.google.android.gms:play-services-location:20.0.0",
          playServiceMaps             : "com.google.android.gms:play-services-maps:18.1.0",
Run Code Online (Sandbox Code Playgroud)

我还使用 firebaseBomVersion 30.5.0。

我收到的错误消息是:

ANR in com.app.android.debug (com.app.android.debug/com.app.android.view.ui.activities.PhoneLookupActivity)
                 PID: 29822
                 Reason: Input dispatching timed out (63037a6 com.app.android.debug/com.app.android.view.ui.activities.PhoneLookupActivity (server) is
                 not responding. Waited 10010ms for FocusEvent(hasFocus=true))
                 Parent: com.app.android.debug/com.app.android.view.ui.activities.PhoneLookupActivity
                 ErrorId: …
Run Code Online (Sandbox Code Playgroud)

android firebase google-play-services android-gradle-plugin

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

显示启动屏幕时后退按钮不响应(适用于 Android 12 的新启动 API)

自从 Android 12 的新 Android Splash Screen API 开始,在显示闪屏时后退按钮不再响应,看起来 UI 线程已完全接管,我无法重新启用后退按钮,这是一个问题,例如,如果用户不小心打开应用程序,他通常会单击后退按钮,应用程序关闭后问题就会立即解决(或者至少这是我的应用程序在这个新 API 之前的行为),但现在这是一个糟糕的用户体验。

所以我想知道您是否找到了解决此问题的方法并在加载数据时显示启动屏幕时启用“后退”按钮?

我测试了很多教程并下载了源代码,但在所有教程中,后退按钮都没有响应。

例如这个:https: //github.com/philipplackner/SplashScreenAndroid12

感谢您的帮助,非常感谢。

android back-button android-12 android-splashscreen

5
推荐指数
0
解决办法
165
查看次数

为什么编译器建议将密封的子类转换为对象?

我不明白为什么编译器建议我将带有子类的密封类转换为对象,让我们看一个例子:

sealed class CallState
class SendReceive : CallState()
class SendOnly:CallState()
Run Code Online (Sandbox Code Playgroud)

对此

sealed class CallState
object SendReceive : CallState()
object SendOnly:CallState()
Run Code Online (Sandbox Code Playgroud)

似乎它阻止我创建一个非状态对象,但我不知道编译器是什么意思。

谢谢你的帮助。

kotlin sealed-class

3
推荐指数
1
解决办法
639
查看次数

新 logcat Android Studio Dolphin:如何仅显示我的应用程序的错误

对于 AS Dolphin 的新 Logcat,我使用过滤器:

level:error 
Run Code Online (Sandbox Code Playgroud)

它向我显示了 logcat 中的错误,但是,它显示了手机中发生的所有错误,但我只想要我的应用程序的错误,我也尝试过以下操作:

package:mine || level:error
Run Code Online (Sandbox Code Playgroud)

但这根本不起作用。你找到办法做到这一点了吗?感谢您的帮助!

android logcat android-studio android-studio-dolphin

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