小编Dav*_*vid的帖子

Android build.gradle 中的“flavorDimensions”已弃用

设置在build.gradle flavorDimensions "xyz", "abc"

@Incubating 
@Deprecated(message = "Replaced by flavorDimensions property") 
public void flavorDimensions(
    @NotNull String... dimensions
)
Run Code Online (Sandbox Code Playgroud)

我找不到现代方法的例子。

android gradle build.gradle

47
推荐指数
4
解决办法
2万
查看次数

Actionbar徽标大小?

在Google I/O 2012 Android应用中,使用操作栏徽标代替普通应用图标.在开源项目中,我可以找到340x72的图像,仅在此维度中显示.我搜索了在操作栏中是否有使用徽标的指定大小,但我没有找到任何内容.你知道这个吗?

size android graphical-logo android-actionbar

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

java.lang.NullPointerException:尝试在启动通知时调用接口方法'java.util.Iterator java.lang.Iterable.iterator()'

我注意到我的一些用户正在获得此异常.我不知道如何重现它,我只有关于Crashlytics的报告.似乎深入Google的代码.在使用此代码的数千人中,只有39人有例外.

知道什么可能是错的吗?

Fatal Exception: java.lang.NullPointerException: Attempt to invoke interface method 'java.util.Iterator java.lang.Iterable.iterator()' on a null object reference
       at android.app.ApplicationPackageManager.getUserIfProfile(ApplicationPackageManager.java:2141)
       at android.app.ApplicationPackageManager.getUserBadgeForDensity(ApplicationPackageManager.java:997)
       at android.app.Notification$Builder.getProfileBadgeDrawable(Notification.java:2877)
       at android.app.Notification$Builder.hasThreeLines(Notification.java:3092)
       at android.app.Notification$Builder.build(Notification.java:3646)
       at android.support.v4.app.NotificationCompatApi21$Builder.build(NotificationCompatApi21.java:136)
       at android.support.v7.app.NotificationCompat$LollipopExtender.build(NotificationCompat.java:504)
       at android.support.v4.app.NotificationCompat$NotificationCompatImplApi21.build(NotificationCompat.java:835)
       at android.support.v4.app.NotificationCompat$Builder.build(NotificationCompat.java:1752)
       at mycode.startNotification(mycode.java:361)
Run Code Online (Sandbox Code Playgroud)

谢谢.

android android-notifications

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

unwrapKey函数与AES-KW无法在IE11中工作

在解压缩代码后的MS Edge上工作:

window.crypto.subtle.unwrapKey(
                                "raw",
                                wrappedKey,
                                derivedKey,
                                { "name": "AES-KW", iv: iv },
                                { "name": "AES-CBC", iv: iv },
                                false,
                                ["decrypt"]
                            )
Run Code Online (Sandbox Code Playgroud)

IE11实现基于W3C WebCrypto API的未完成版本,有一个文档,但没有任何示例代码可用,我的尝试到目前为止还没有工作.以下不会在IE11上抛出错误,但结果键为null:

window.msCrypto.subtle.unwrapKey(
                                    wrappedKey,                                        
                                    {
                                        "name": "AES-KW",
                                        iv: iv
                                    },
                                    e.target.result,
                                    false,
                                    ["decrypt"]
                                )
Run Code Online (Sandbox Code Playgroud)

这是您可以运行的JSFiddle.

javascript encryption cryptography internet-explorer-11 webcrypto-api

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

Android default launchMode of LAUNCHER activity?

does the launchMode of the launcher activity in the manifest get ignored? The android documentation says that the default launchMode is "standard" but this isn't logic for me if this would be applied to the main activity of an app because each time you start the app, another task would be created in the instance of the app.

android android-activity

17
推荐指数
2
解决办法
3624
查看次数

IllegalStateException一旦设置便无法更改活动类型

我可以看到在多个设备上引发了异常,但使用该异常的字符串从Google的测试类中找不到任何异常。您有什么暗示为什么会这样吗?

Fatal Exception: java.lang.IllegalStateException: Can't change activity type once set: { mBounds=Rect(0, 0 - 1080, 2076) mAppBounds=Rect(0, 0 - 1080, 2076) mWindowingMode=fullscreen mActivityType=home} activityType=standard
       at android.os.Parcel.createException(Parcel.java:1974)
       at android.os.Parcel.readException(Parcel.java:1934)
       at android.os.Parcel.readException(Parcel.java:1884)
       at android.app.IActivityManager$Stub$Proxy.startActivity(IActivityManager.java:3604)
       at android.app.Instrumentation.execStartActivity(Instrumentation.java:1669)
       at android.app.Activity.startActivityForResult(Activity.java:4688)
       at android.support.v4.app.FragmentActivity.startActivityForResult(SourceFile:767)
       at android.app.Activity.startActivityForResult(Activity.java:4646)
       at android.support.v4.app.FragmentActivity.startActivityForResult(SourceFile:754)
       at android.app.Activity.startActivity(Activity.java:5007)
       at android.app.Activity.startActivity(Activity.java:4975)
       at com.myapp.MyActivity.showAndroidHomeScreen(SourceFile:208)
       at com.myapp.MyActivity.onBackPressed(SourceFile:548)
       at android.app.Activity.onKeyUp(Activity.java:3168)
       at android.view.KeyEvent.dispatch(KeyEvent.java:3374)
       at android.app.Activity.dispatchKeyEvent(Activity.java:3451)
       at android.support.v4.app.SupportActivity.superDispatchKeyEvent(SourceFile:108)
       at android.support.v4.view.KeyEventDispatcher.dispatchKeyEvent(SourceFile:84)
       at android.support.v4.app.SupportActivity.dispatchKeyEvent(SourceFile:126)
       at android.support.v7.app.AppCompatActivity.dispatchKeyEvent(SourceFile:535)
       at android.support.v7.view.WindowCallbackWrapper.dispatchKeyEvent(SourceFile:59)
       at android.support.v7.app.AppCompatDelegateImpl$AppCompatWindowCallback.dispatchKeyEvent(SourceFile:2533)
       at com.android.internal.policy.DecorView.dispatchKeyEvent(DecorView.java:564)
       at android.view.ViewRootImpl$ViewPostImeInputStage.processKeyEvent(ViewRootImpl.java:6012)
       at android.view.ViewRootImpl$ViewPostImeInputStage.onProcess(ViewRootImpl.java:5867)
       at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:5320)
       at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:5373)
       at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:5339) …
Run Code Online (Sandbox Code Playgroud)

android illegalstateexception

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

android dialogFragment"有时"没有显示webview

我有一个带有WebView的DialogFragment.如果webview没有足够快地加载页面,DialogFragment将完全收缩而不显示webview.否则,如果加载速度很快,则会显示WebView.

android android-webview android-dialogfragment

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

FirebaseCore 3.4.7 Google Drive pod中的模块会破坏工作区

我今天打过电话pod update,只有FirebaseCore从版本3.4.6更新到3.4.7.在那之后我得到了跟随错误,无论我清理所有工作区多少次,再次结账等等.每次我得到这个新版本时,我最终会在编译时遇到以下错误:

duplicate symbol _GSDK_NSClassFromString in:
    .../Pods/FirebaseCore/Frameworks/FirebaseCore.framework/FirebaseCore(overload_9ea29fd47bf44ee000bc4282b65dac06.o)
    ...Pods/GoogleSymbolUtilities/Frameworks/frameworks/GoogleSymbolUtilities.framework/GoogleSymbolUtilities(overload.o)
duplicate symbol _GSDK_objc_getClass in:
    ...Pods/FirebaseCore/Frameworks/FirebaseCore.framework/FirebaseCore(overload_9ea29fd47bf44ee000bc4282b65dac06.o)
    ...Pods/GoogleSymbolUtilities/Frameworks/frameworks/GoogleSymbolUtilities.framework/GoogleSymbolUtilities(overload.o)
duplicate symbol _GSDK_objc_getProtocol in:
    ...Pods/FirebaseCore/Frameworks/FirebaseCore.framework/FirebaseCore(overload_9ea29fd47bf44ee000bc4282b65dac06.o)
    ...Pods/GoogleSymbolUtilities/Frameworks/frameworks/GoogleSymbolUtilities.framework/GoogleSymbolUtilities(overload.o)
duplicate symbol _GSDK_objc_lookUpClass in:
    ...Pods/FirebaseCore/Frameworks/FirebaseCore.framework/FirebaseCore(overload_9ea29fd47bf44ee000bc4282b65dac06.o)
    ..Pods/GoogleSymbolUtilities/Frameworks/frameworks/GoogleSymbolUtilities.framework/GoogleSymbolUtilities(overload.o)
ld: 4 duplicate symbols for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Run Code Online (Sandbox Code Playgroud)

google-drive-api

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

Android jetpack 生物识别 DeviceCredentialHandlerActivity 导出=真真的需要吗?

我使用 setDeviceCredentialAllowed(true) 实现了新的生物识别库,如官方文档中所示

在这个库中,有一个活动正在使用“DeviceCredentialHandlerActivity”,这个活动在清单中已经导出=true,为什么这是/这真的需要?众所周知,出于安全原因,应尽可能避免出口活动。我已经用以下方法覆盖了该属性:

<activity android:name="androidx.biometric.DeviceCredentialHandlerActivity"
            android:exported="false"
            tools:replace="android:exported">
        </activity>
Run Code Online (Sandbox Code Playgroud)

使用指纹/密码进行身份验证仍在 Android 29 及以下版本上工作。

android android-jetpack android-biometric-prompt

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

是否可以从导入的 gradle 库中删除类?

我正在搜索并尝试通过 gradle 从导入的库中删除一个类,而没有真正让它工作,这是否可以通过 Android+gradle 实现?这该怎么做?

例如,如果我包含这样的库:

implementation 'org.bouncycastle:bcpkix-jdk15on:1.64'
Run Code Online (Sandbox Code Playgroud)

如何按名称从中删除类?我尝试的最新方法是在 build.gradle 中设置:

android {
  sourceSets.main.java.filter.exclude '**/QTeslaKeyEncodingTests.*'
}
Run Code Online (Sandbox Code Playgroud)

以下也不起作用:

jar {
    sourceSets {
        main {
            java {
                exclude '**/QTeslaKeyEncodingTests.java'
                exclude '**/QTeslaKeyEncodingTests.class'
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

这也没有:

android{
  packagingOptions {        
    exclude 'org.bouncycastle/pqc/crypto/qtesla/QTeslaKeyEncodingTests.class'
  }
}
Run Code Online (Sandbox Code Playgroud)

上下文:为什么我目前需要这个:当你执行“gradlew testDebug”时,项目中的所有测试都会运行,包括那些存在于导入的库中的测试。我也不知道这是否是 bouncyCastle 的错误,他们将这些测试包含在库中,但这是一个问题,因为许多测试都失败了。

android bouncycastle gradle android-gradle-plugin

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

处理程序,我想定期运行

使用handler想要定期运行计数为0,如果countis为1,否则请修复此代码.

mRunnable = new Runnable(){
  @Override
  public void run() {
    if (count == 0) {
      setImage();
      count = 1;
    } else {
      weather = mContentResolver.getType(mUri);
      setWeather(weather);
      count = 0;
    }
  } 
};
mHandler = new Handler();
mHandler.postDelayed(mRunnable, 3000);
Run Code Online (Sandbox Code Playgroud)

android handler ui-thread

5
推荐指数
2
解决办法
9403
查看次数

sortedBy() 选择器未对列表进行排序

我有一个sortedBy{}声明打算List按元素的长度对a 进行排序String

var animals: List<String> = listOf("tiger", "cat", "dragon", "elephant")
fun strLength(it: String) = it.length
animals.sortedBy { strLength(it) }
animals.forEach {println(it)}
Run Code Online (Sandbox Code Playgroud)

但是它只打印初始订单。知道为什么吗?

kotlin

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

Kotlin 为什么尽管进行 null 检查仍需要非 null 断言

我正在尝试处理 Kotlin/Android 上的改造响应:

if (response.isSuccessful && response.body() != null) {
                    val result = response.body().result
Run Code Online (Sandbox Code Playgroud)

首先,我不明白响应如何成功并且正文为空。无论如何,如果我添加空检查,我也会得到“智能转换为‘xy’是不可能的,因为‘response.body()’是一个复杂的表达式”添加非空断言代码(!!)实际上对我来说这是两个单独的警告,但为什么是空断言请求呢?

kotlin retrofit2

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