Android--AOSP中使用AlertDialog使用踩坑记录

        在App中使用AlertDialog有很多帖子说明,这里不在赘述。主要记录修改AOSP中遇到的使用AlertDialog踩坑记录。

在fwk中的service或者是CarService中要使用AlertDialog,仅添加AlertDialog是不够的,会直接crash。

android.view.WindowManager$BadTokenException: Unable to add window -- token android.os.BinderProxy

这里的主要问题是我们在创建AlertDialog时使用的Context对象,fwk的service继承自SystemService,它是一个抽象类,并不是我们所熟悉app中所使用的service。同理CarService中的Service也是类似情况。

解决方案:在CarService中创建一个service(android.app.Service)用以处理UI部分,不要写在AOSP中原始CarxxService中。

fwk中类似操作

原因就是Context并不是Activity或者是service,可以使用UI的

在AOSP中编译集成开发的aar或者是jar库

1.在AOSP要编译的目录下创建libs文件夹

2.在libs目录下放要编译的aar或者jar,并且书写Android.bp文件

android_library_import {
    name: "xxxx1",
    aars: ["xxxx1.aar"],
    sdk_version: "xxxx1",
    static_libs: [
        "androidx.appcompat_appcompat",
        "androidx-constraintlayout_constraintlayout"
    ]
}


android_library_import {
    name: "xxxxx2",
    aars: ["xxxxx2.aar"],
    sdk_version: "current",
}

java_import {
    name: "Okhttp",
    jars: ["okhttp-xxx.jar"],
}

java_import {
    name: "Okio",
    jars: ["okio-xx.jar"],
}


cc_prebuilt_library_shared {
    name: "libxxx",
    compile_multilib: "both",
    multilib: {
        lib64: {
            srcs: ["arm64-v8a/libxxx.so"],
        },
        lib32: {
            srcs: ["armeabi-v7a/libxxx.so"],
        },
    },
    clang: true,
    proprietary: true,
}

3.在要编译的Android.bp文件中的添加
common_lib_deps = [

]

  • 10
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值