android 小问题记录

android 小问题记录

      • Default Activity not found
      • Gradle implementation 与 反射
      • couldn't find "libXXXX.so"
      • Crypto primitive not backed by AndroidKeyStore provider

日常问题及解决方案记录(暂时不做分类)

Default Activity not found

解决方案

  1. 检查AndroidManifest.xml中启动的Activity是否有下面的标记

    
         
         
    
    

    这一步很关键,但应该解决不了大部分人的问题

  2. 重启

    File —> Invalidate Caches / Restart
    我的问题还是没有解决,每次仍然是需要重新Sync一遍才可以

  3. 删除gradle缓存
    删除%Home%\.gradle\caches目录
    然后再重启

Gradle implementation 与 反射

dependencies.invokeMethod(flavorName + "Implementation", "xxx.xxxx.xxx:xxx")

每次用反射都觉得像开挂

couldn’t find “libXXXX.so”

crash原文:

java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader[DexPathList[[zip file "/system/framework/org.apache.http.legacy.boot.jar", zip file "/data/app/com.example.ttt-XUg3EWS4tIj9SSW7pdb1fA==/base.apk"],nativeLibraryDirectories=[/data/app/com.example.ttt-XUg3EWS4tIj9SSW7pdb1fA==/lib/arm, /system/fake-libs, /data/app/com.example.ttt-XUg3EWS4tIj9SSW7pdb1fA==/base.apk!/lib/armeabi, /system/lib, /product/lib]]] couldn't find "libactionlive.so"
        at java.lang.Runtime.loadLibrary0(Runtime.java:1012)
    ....

crash现场情况:

  • 集成两个aar出现crash
  • 任意一个aar单独集成都不会出问题
  • A.aar和B.aar都使用了同样的一些so文件

crash处理:

  • A.aar中写了arm64-v8a和armeabi-v7a两套
  • B.aar中写了x86 armeabi和armeabi-v7a三套
  • 相同的是armeabi-v7a,所以设置 abiFilters 'armeabi-v7a’

Crypto primitive not backed by AndroidKeyStore provider

问题场景:创建RSA密钥对,设置验证后可用,当调起生物/指纹识别时抛出的异常
问题原因:如果是AES密钥对设置验证后可用的属性,那么加密和解密都需要通过用户验证,但RSA中的公钥本身的意义就是“所有人可知的”,所以google没有对RSA密钥对的加密和验签做验证限制。
问题解决:如果使用RSA公钥加密或验签,那么直接用就可以了,无需通过用户验证。

你可能感兴趣的:(Android)