记录Android Studio的坑

AAPT2 error: check logs for details

studio 2的项目使用3打开基本就会遇到这个问题

日志如下:

AGPBI: {"kind":"error","text":"error: style attribute \u0027@android:attr/windowEnterAnimation\u0027 not found.","sources":[{"file":"/Users/yeqiu/WorkSpace/AndroidProject/yeqiu/demo/app/build/intermediates/incremental/mergeDebugResources/merged.dir/values/values.xml","position":{"startLine":3548}}],"original":"","tool":"AAPT"}
AGPBI: {"kind":"error","text":"error: style attribute \u0027@android:attr/windowExitAnimation\u0027 not found.","sources":[{"file":"/Users/yeqiu/WorkSpace/AndroidProject/yeqiu/demo/app/build/intermediates/incremental/mergeDebugResources/merged.dir/values/values.xml","position":{"startLine":3550}}],"original":"","tool":"AAPT"}

看起来是windowEnterAnimation和windowExitAnimation没有这两个属性。这是个老项目,在2.3是可以用的。

这两个属相调用的地方

 <style name="sheet_dialog" parent="android:style/Theme.Dialog">
        <item name="android:windowBackground">@android:color/transparent</item>
        <item name="android:windowContentOverlay">@null</item>
        <item name="android:windowIsFloating">true</item>
        <item name="android:windowFrame">@null</item>
        <item name="android:backgroundDimEnabled">true</item>
        <item name="android:windowNoTitle">true</item>
        <item name="android:windowIsTranslucent">true</item>
        <item name="android:windowAnimationStyle">@style/sheet_dialog_anim</item>
    </style>

    <style name="sheet_dialog_anim" parent="@android:style/Animation.Dialog">
        <!-- 进入时的动画 -->
        <item name="@android:windowEnterAnimation">@anim/sheet_dialog_enter</item>
        <!-- 退出时的动画 -->
        <item name="@android:windowExitAnimation">@anim/sheet_dialog_exit</item>
    </style>

解决办法:

去掉@符,修改为

 <style name="sheet_dialog_anim" parent="@android:style/Animation.Dialog">
        <!-- 进入时的动画 -->
        <item name="android:windowEnterAnimation">@anim/sheet_dialog_enter</item>
        <!-- 退出时的动画 -->
        <item name="android:windowExitAnimation">@anim/sheet_dialog_exit</item>
    </style>

cannot access xxx

网上有人说这是idea的bug,重启一下就好了。

我这里的情况是继承了一个库里的抽象类。这个抽象类有继承了另一个库的的类。

image

我试了重启并没有解决问题。最后猜想应该是和依赖方式有关。

尝试将库的引用从compile改成了api,解决问题(将我引用的库引用其他的库的方式改成api,并不是修改app库的方式)。关于引用的方式可以看看这里Android Studio3.0之前的6种依赖方式和3.0之后新增的两种依赖方式

JKS 密钥库使用专用格式

image

JKS 密钥库使用专用格式。建议使用 "keytool -importkeystore -srckeystore XXX -destkeystore XXX -deststoretype pkcs12" 迁移到行业标准格式 PKCS12。

这里虽然报错了关闭窗口之后还是会生成key文件,但是似乎不能用。

这个问题我也没找到好的办法,只能按照提示执行一遍命令

keytool -importkeystore -srckeystore key.jks -destkeystore key.jks -deststoretype pkcs12
image

会生成一个新的key文件,旧的key会被重命名备份。以后使用新的key就可以。

多渠道打包

以前我都是直接在项目下面的 build.gradle中添加

    productFlavors {
        anzhi {}
        baidu {}
        xiaomi {}
        qihu360 {}
        huawei {}
        oppo {}
        yingyongbao {}
        wandoujia {}
        vivo {}
        sougou {}
        meizu {}
        chexixi {}
    }

之后再打包的时候可以选择debug和release。全选需要的渠道就可以打出来。然后更新到3之后打包的页面变成了这样

image

不在区分debug和release。这样就很难受。最后我选择了使用360加固多渠道打包(是时候学习多渠道打包了)

相关资料:

Android Studio3.0之前的6种依赖方式和3.0之后新增的两种依赖方式

AS升级3.0依赖方式的改变,implement、api 和compile区别

Android Studio3.0更新之路(遇坑必入)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 一、Project的build.gradle文件: 对应的build.gradle代码如下: buildscrip...
    RubinZuo阅读 76,048评论 21 415
  • 版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/zhaoyanj...
    勤奋的pangdunhu阅读 2,226评论 0 1
  • 1.介绍 如果你正在查阅build.gradle文件的所有可选项,请点击这里进行查阅:DSL参考 1.1新构建系统...
    Chuckiefan阅读 12,355评论 8 72
  • 很久之前,至少在没有认识你之前,我并不是一个喜欢听歌的人。更不会在深夜里,戴着耳机听歌入睡。 你说...
    也夏阅读 388评论 0 2
  • 尝试上色,本想蓝色叶子,但上了绿色打底后,感觉就是要轻盈是绿色,现在上色不匀呐,后面慢慢改……晚上拍照不好看,完工...
    梦海蓉阅读 521评论 0 1

友情链接更多精彩内容