在应用程序发布之前,我在 Google Play 中遇到以下错误。这不是警告而是错误。我可以看到具有类似堆栈跟踪的警告。我不确定该应用程序是否会因为这些而被拒绝,因为预发布报告的摘要令人困惑。它说没有问题。但在稳定性下它会显示 Android 兼容性下的警告和错误。这似乎是由react-native使用的一些库引起的(从一些类似的帖子来看,它看起来像okhttp),但我不确定这个跟踪意味着什么。
我对反应本机非常陌生,不知道如何解决这个问题。我找不到任何解决方案,只有一些类似的帖子,但没有解决方案。由于这个问题,我们的应用程序发布陷入了困境。任何帮助将不胜感激。
StrictMode policy violation: android.os.strictmode.NonSdkApiUsedViolation: Lcom/android/org/conscrypt/ConscryptEngineSocket;->setHostname(Ljava/lang/String;)V
at android.os.StrictMode.lambda$static$1(StrictMode.java:416)
at android.os.-$$Lambda$StrictMode$lu9ekkHJ2HMz0jd3F8K8MnhenxQ.accept(Unknown Source:2)
at java.lang.Class.getDeclaredMethodInternal(Native Method)
at java.lang.Class.getPublicMethodRecursive(Class.java:2079)
at java.lang.Class.getMethod(Class.java:2066)
at java.lang.Class.getMethod(Class.java:1693)
at okhttp3.internal.platform.OptionalMethod.getPublicMethod(OptionalMethod.java:164)
at okhttp3.internal.platform.OptionalMethod.getMethod(OptionalMethod.java:149)
at okhttp3.internal.platform.OptionalMethod.invokeOptional(OptionalMethod.java:66)
at okhttp3.internal.platform.OptionalMethod.invokeOptionalWithoutCheckedException(OptionalMethod.java:86)
at okhttp3.internal.platform.AndroidPlatform.configureTlsExtensions(AndroidPlatform.java:123)
at okhttp3.internal.connection.RealConnection.connectTls(RealConnection.java:314)
at okhttp3.internal.connection.RealConnection.establishProtocol(RealConnection.java:283)
at okhttp3.internal.connection.RealConnection.connect(RealConnection.java:168)
at okhttp3.internal.connection.StreamAllocation.findConnection(StreamAllocation.java:257)
at okhttp3.internal.connection.StreamAllocation.findHealthyConnection(StreamAllocation.java:135)
at okhttp3.internal.connection.StreamAllocation.newStream(StreamAllocation.java:114)
at okhttp3.internal.connection.ConnectInterceptor.intercept(ConnectInterceptor.java:42)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:147)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:121)
at okhttp3.internal.cache.CacheInterceptor.intercept(CacheInterceptor.java:93)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:147)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:121)
at okhttp3.internal.http.BridgeInterceptor.intercept(BridgeInterceptor.java:93)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:147)
at okhttp3.internal.http.RetryAndFollowUpInterceptor.intercept(RetryAndFollowUpInterceptor.java:126)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:147)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:121)
at okhttp3.RealCall.getResponseWithInterceptorChain(RealCall.java:254)
at okhttp3.RealCall$AsyncCall.execute(RealCall.java:200)
at okhttp3.internal.NamedRunnable.run(NamedRunnable.java:32)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167) …Run Code Online (Sandbox Code Playgroud) 我的应用程序已在 Google Play 上发布,目前面向 Android 12,是一款闹钟应用程序。在最新版本中,我已使用该SCHEDULE_EXACT_ALARM权限,并根据需要在运行时处理检查和请求该权限。
在检查 Android 13 的行为更改后,我发现有一个新权限USE_EXACT_ALARM,其用例具有非常严格的限制,如此处所列。我的应用程序是一个闹钟应用程序,因此它有资格使用此权限。(使用此权限的一个优点是系统会自动授予它,并且用户无法撤销它。)
我将此权限添加到AndroidManifest.xml文件中并删除了该SCHEDULE_EXACT_ALARM 权限。然而,Android Studio 在该方法上给了我一个 lint 警告alarmManager.setAlarmClock(...):
警告内容如下:
设置精确的警报
setAlarmClock需要SCHEDULE_EXACT_ALARM用户的许可或权限;它适用于用户有意安排在精确时间发生的操作的应用程序,例如闹钟、时钟、日历等。查看有关此权限的 javadoc 以确保您的用例有效。
Android开发者网站表示,我可以选择根据我的用例声明任一权限。然而,Android lint 告诉我,SCHEDULE_EXACT_ALARM无论我是否已经声明过,我都应该声明USE_EXACT_ALARM。
我应该怎么办?关注网站并抑制 lint?
在 API 33 (Android 13) 中,引入了细粒度的媒体权限,开发人员必须请求这些细粒度的权限,而不是READ_EXTERNAL_STORAGE.
READ_MEDIA_AUDIO就是这样一种细粒度的权限。此权限仅存在于 API 级别 33+ 中,所以我的问题是,我应该在清单中请求哪个权限?
由于我的应用程序有minSDK = 21,我是否应该在清单中同时请求READ_EXTERNAL_STORAGE和。READ_MEDIA_AUDIO或者我应该只提出请求READ_EXTERNAL_STORAGE并且这将涵盖READ_MEDIA_AUDIO?(当然,在运行时,我会根据SDK_INT设备请求任一权限。)
Android 14 强制要求为前台服务声明正确的前台服务类型。详细信息请参见此处。
引入了三种新的前景类型,其中specialUse之一。它涵盖了所有不能归入其他类型的情况。根据文档,我们需要使用以下内容在清单本身中提及“用例”:
<service android:name="fooService" android:foregroundServiceType="specialUse">
<property android:name="android.app.PROPERTY_SPECIAL_USE_FGS_SUBTYPE" android:value="foo"/>
</service>
Run Code Online (Sandbox Code Playgroud)
根据文档,当应用程序上传到 Google Play 时,将会对此进行审核。
是否有编写“用例”(即内部android:value="foo")的指导原则?或者我可以用我自己的话来描述我的服务的作用吗?
我在 Android Studio 中将 Android Gradle Plugin 更新为 v3.6.2,并将 Grade 更新为 v6.3。当我使用编译器选项运行构建时--warning-mode all,我收到以下两个弃用警告:
Configure project :app
Internal API constructor DefaultDomainObjectSet(Class<T>) has been deprecated. This is scheduled to be removed in Gradle 7.0. Please use ObjectFactory.domainObjectSet(Class<T>) instead. See https://docs.gradle.org/6.3/userguide/custom_gradle_types.html#domainobjectset for more details.
at build_gklh609eby8f87cnghyses56.run(E:\Mahalaya\app\build.gradle:1)
(Run with --stacktrace to get the full stack trace of this deprecation warning.)
Run Code Online (Sandbox Code Playgroud)
Querying the mapped value of map(property(interface org.gradle.api.file.Directory, property(interface org.gradle.api.file.Directory, fixed(class org.gradle.api.internal.file.DefaultFilePropertyFactory$FixedDirectory, E:\Mahalaya\app\build\generated\ap_generated_sources\debug\out)))) before task ':app:compileDebugJavaWithJavac' has completed has been deprecated. …Run Code Online (Sandbox Code Playgroud) 今天,我想知道oneAPI 中的 Conda 和 Anaconda 中的 Conda 之间的区别是什么,以及如何以正确的方式使用 oneAPI来最大程度地利用最新的 Intel Core gen 12。
安装 oneAPI 后,它们还包含 conda。但是,在以下情况下我不能将此用作正常条件:
-它不包含 conda-build 和几个像 Anaconda 中的普通 conda 一样的包。
- 无法从 Conda OneAPI 的“基础”创建和克隆其他环境。如果我将“base”克隆为新的conda create --name new_env --clone base,然后激活“new_env”,我将无法再使用 Conda,并且它会警告我,就像 conda 不存在一样。警告如下。
'conda' is not recognized as an internal or external command.
operable program or batch file.
Run Code Online (Sandbox Code Playgroud)
然而,在 Anaconda 中,在 conda oneAPI 上训练任何 DNN 模型都比在 conda 上训练快 30%,并且在数据预处理任务中也有更好的性能。我真的很想在 Conda OneAPI 环境中始终使用 Python 的优势,就像在 Anaconda 中使用普通 Conda 一样。那么,如何将它们合并为一个,以便于使用,或者如何解决oneAPI工具包的Conda环境问题
ImageButton plusButton = new ImageButton(context);
plusButton.setImageResource(x);
Run Code Online (Sandbox Code Playgroud)
我需要一些资源来代替x上面的代码行,例如,实现下图中电话号码字段附近显示的减号和加号按钮之类的功能:
但我不知道这些图片的资源在哪里。所以请帮我解决这个问题。谢谢。