版权声明:本文为博主原创文章,欢迎大家转载!
转载请标明出处: http://blog.csdn.net/guiying712/article/details/55213884 ,本文出自:【张华洋的博客】
原文地址: https://developer.android.google.cn/studio/releases/index.html
Android Studio 3.0版本编译出错解决办法
1、Error: style attribute ‘@android:attr/windowExitAnimation’ not found
解决办法:
从相应的 item 移除”@”
<style name="my_style”>
<item name="@android:windowEnterAnimation">@anim/anim_toast_show</item>
<item name="@android:windowExitAnimation">@anim/anim_toast_hide</item>
</style>
to :
<item name="android:windowEnterAnimation">@anim/anim_toast_show</item>
<item name="android:windowExitAnimation">@anim/anim_toast_hide</item>
2、错误: 程序包xxxxx.xxxxx不存在
解决办法:
将找不到包的库的依赖命令 compile 或 implementation 改成 api
implementation fileTree(include: ['*.jar'], dir: 'libs')
implementation 'com.android.support:cardview-v7:25.4.0'
implementation project(':b_isms_video_entry')
to :
api fileTree(include: ['*.jar'], dir: 'libs')
api 'com.android.support:cardview-v7:25.4.0'
api project(':video')
3、Dependency has different version for compile and runtime classpath, You should manually set the same version via DependencyResolution;
解决办法:
请添加 subprojects 下面的代码块到你的project(不是module)的build.gradle 文件,然后Clean and Build again
allprojects {
repositories {
//...
}
subprojects {
project.configurations.all {
resolutionStrategy.eachDependency { details ->
if (details.requested.group == 'com.android.support'
&& !details.requested.name.contains('multidex') ) {
details.useVersion "25.4.0"
}
}
}
}
}
4、 Annotation processors must be explicitly declared now. The following dependencies on the compile classpath are found to contain annotation processor. Please add them to the annotationProcessor configuration.
在以前版本的插件中,编译类路径的依赖关系自动添加到处理器类路径中。也就是说,你可以添加一个注释处理器到编译类路径,它会按预期工作。但是,这会通过向处理器添加大量不必要的依赖关系而对性能产生重大影响。
解决办法:
使用Android插件3.0.0时,必须使用annotationProcessor依赖配置将注释处理器添加到处理器类路径,如下所示:
dependencies {
...
annotationProcessor 'com.google.dagger:dagger-compiler:2.31'
}
Android Studio 3.0版本(2017年10月)
Android Studio是Android开发的官方IDE,包含构建Android应用程序所需的一切。
要获取最新版本,请单击 Help > Check for update(在Mac, Android Studio > Check for updates)。
或者您可以在 这里下载Android Studio;
Android Studio 3.0.0是一个主要版本,包括各种新功能和改进。
macOS用户:如果您要更新旧版本的Android Studio,可能会遇到更新错误对话框,其中显示 “Some conflicts were found in the installation area(在安装区域中发现某些冲突)”。只需忽略此错误,然后单击“ 取消”继续安装。
用于Gradle 3.0.0的Android插件
Gradle的新Android插件 包括各种改进和新功能,但它主要提高了具有大量模块的项目的构建性能(估计对组件化项目比较友好)。当使用这个新插件用于大型项目时,您应该体验以下内容:
- 由于使用了新的延迟依赖性解决方案,使得 Gradle 拥有更快的构建配置时间;
- 只针对您正在构建的项目和变体 进行 Variant-aware 依赖解析;
- 对代码或资源应用简单的更改时,会拥有更快的增量构建时间;
注意:这些改进需要重大的改进,从而破坏了插件的一些行为、DSL和API。升级到 3.0.0 版本可能需要更 改您的构建文件和Gradle插件。
此版本还包括以下内容:
- 支持Android 8.0。
- 支持基于 language resources 构建独立的APK。
- 支持Java 8库和Java 8语言特性(没有Jack编译器)。
- 支持 Android Test Support Library 1.0 ( Android Test Utility and Android Test Orchestrator)。
- 改进了 ndk-build和cmake 构建速度。
- 改进了 Gradle sync 速度。
- 默认启用AAPT2。
- 使用ndkCompile现在会受到更多限制 , 您应该转而使用CMake或ndk-build来编译打包到您的APK中的native code(C/C++代码) 。要了解更多信息,请阅读 从ndkcompile迁移。
如果您准备升级到新的插件,请参阅 迁移到适用于Gradle 3.0.0的Android插件。
Kotlin支持
如Google I / O 2017所宣布,Kotlin编程语言现已在Android上正式受到支持。所以在这个版本中,Android Studio包含Kotlin语言支持Android开发。
通过将Java文件转换为Kotlin(点击 Code > Convert Java File to Kotlin File),或者使用新建项目向导创建一个新的启用Kotlin的项目,可以将Kotlin整合到项目中。
要开始,请阅读 如何将Kotlin添加到您的项目中。
Java 8语言功能支持
您现在可以使用某些Java 8语言功能并使用Java 8构建的库。不再需要 Jack。您应该首先 禁用Jack 以使用内置的支持Java 8的默认工具链。
要更新项目以支持新的Java 8语言工具链,请将 Project Structure对话框中的 Source Compatibility 和 Target Compatibility 更新为1.8 (单击 File > Project Structure)。要了解更多信息,请阅读如何 使用Java 8语言功能。
Android Profiler
新的Android Profiler 取代了Android监视器工具,并提供了一套新的工具来实时测量应用程序的CPU,内存和网络使用情况。您可以执行基于样本的方法跟踪来执行代码,捕获堆内存,查看内存分配以及检查网络传输文件的详细信息。
要打开,请单击 View > Tool Windows > Android Profile (或单击工具栏中的 Android Profiler )。
窗口顶部的事件时间轴显示触摸事件,按键和活动更改,因此您有更多的上下文可以了解时间轴中的其他性能事件。
注意:该logcat的视图也移动到一个单独的窗口(这是先前的Android Monitor,后者除去内侧)。
从Android Profiler的概述时间轴上,单击 CPU、MEMORY或 NETWORK时间线以访问相应的分析器工具。
CPU Profiler
CPU Profiler可帮助您通过触发示例或仪表化的CPU跟踪,来分析应用程序的CPU线程使用情况。然后,您可以使用各种数据视图和过滤器来解决CPU性能问题。
有关更多信息,请参阅 CPU Profiler 指南。
Memory Profiler
Memory Profiler 可以帮助您 识别 内存泄漏和内存流失 导致的卡顿、冻结甚至应用程序崩溃。它显示了应用程序内存使用的实时图形,可以捕获 a heap dump,强制垃圾收集和跟踪内存分配。
有关详细信息,请参阅 Memory Profiler 指南。
Network Profiler
网络分析器允许您监视应用程序的网络活动,检查每个网络请求的有效负载,并链接到生成网络请求的代码。
有关详细信息,请参阅 Network Profiler 指南。
APK剖析和调试
Android Studio现在允许您对任何 APK 进行配置和调试,而无需将其从Android Studio项目中构建 - 只要构建APK 即可启用调试,并且您可以访问调试符号和源文件。
要开始使用,请从Android Studio Welcome屏幕中单击 Profile or debug APK。或者,如果您已经打开了项目,请从菜单栏中单击 File > Profile or debug APK。这将显示已解压缩的APK文件,但它不会反编译代码。因此,要正确添加断点和查看堆栈跟踪,您需要附加Java源文件和本机调试符号。
有关详细信息,请参阅 配置文件和调试预构建的APK。
设备文件浏览器
新的设备文件资源管理器允许您检查连接的设备的文件系统,并在设备和计算机之间传输文件。这将替代DDMS中可用的文件系统工具。
要打开,请单击 View > Tool Windows > Device File Explorer。
有关详细信息,请参阅 设备文件资源管理器指南。
支持 Instant Apps
对 Android Instant Apps的新支持允许您使用两种新的模块类型 ( Instant App 模块和 Feature 模块(这些要求您安装 the Instant Apps Development SDK)) 在项目中创建Instant Apps 。
Android Studio还包含一个新的模块化重构操作,可帮助您在现有项目中添加对Instant Apps的支持。例如,如果要重构项目以在Instant App功能模块中放置一些类,请在“ 项目”窗口中选择类,然后单击Refactor > Modularize。在出现的对话框中,选择类应该去的模块,然后单击确定。
当您准备测试 Instant Apps 时,您可以在运行配置启动选项中指定即时应用程序的URL,在连接的设备上构建并运行Instant App模块:选择 Run > Edit Configurations,选择您的即时应用程序模块,然后在启动选项下设置URL 。
有关详细信息,请参阅 Android Instant Apps。
Android Things模块
新建项目和新建模块向导中的新Android Things模板可帮助您开始开发适用于Android的 IOT设备。
有关详细信息,请参阅 如何创建Android Things项目。
自适应图标向导
Image Asset Studio现在支持绘制矢量图,并允许您为Android 8.0创建自适应启动器图标,同时为旧设备创建传统图标(“旧”图标)。
要开始,请右键单击项目中的res文件夹,然后单击 New > Image Asset。在 Asset Studio 窗口中,选择启动器图标(自适应和旧版)作为图标类型。
注意:您必须设置compileSdkVersion为26或更高才能使用自适应启动器图标。
有关更多信息,请参阅 自适应图标。
支持字体资源
为了支持Android 8.0中的新字体资源,Android Studio包含一个字体资源选择器,用于将 字体 绑定 到应用程序中或配置项目以下载设备上的字体(如果可用)。布局编辑器还可以预览布局中的字体。
要尝试下载字体,请确保您的设备或模拟器正在运行Google Play Services v11.2.63或更高版本。有关更多信息,请参阅 可 下载的字体 。
Firebase App Indexing Assistant
Firebase Assistant已经更新了一个新的教程来测试App Indexing。要打开助手,请选择 Tools > Firebase。然后选择 App Indexing > Test App Indexing.。
该教程包括测试您的公开和个人内容索引的新按钮:
- 在步骤2中,点击 Preview search results 以验证您的网址是否显示在Google搜索结果中。
- 在步骤3中,单击 Check for errors 以验证应用程序中的可索引对象是否已添加到个人内容索引。
Android App Links助手
该应用程序链接助手 已经更新了以下新功能:
- 为每个URL映射添加URL测试,以确保您的意图过滤器处理实际的URL。您还可以使用 下面描述的标签手动定义这些URL测试。
- 使用适当的对象条目创建数字资产链接文件以支持Google Smart Lock,并将相应的asset_statements 标签添加到清单文件中。
网址 Intent过滤 验证器
Android Studio现在支持清单文件中的特殊标记,允许您测试您的意图过滤器URL。这些是App Links Assistant可以为您创建的相同标签。
要为 Intent过滤 声明一个测试URL,请在元素旁添加一个元素。例如:
<activity ...>
<intent-filter>
...
</intent-filter>
<tools:validation testUrl="https://www.example.com/recipe/1138" />
</activity>
确保也包含xmlns:tools=”http://schemas.android.com/tools”在标签中。
如果任何一个测试URL未通过 Intent过滤 定义,则会出现lint错误。这样的错误仍然允许您 构建调试变量,但会破坏您的发行版本。
布局编辑器
在布局编辑器已经更新了一些增强功能,包括以下内容:
- 新的工具栏布局和图标。
- 在组件树中更新布局。
- 改进的拖拽 视图插入。
- 在编辑器下面显示新的错误面板,显示修复建议的所有问题(如果可用)。
- 使用 ConstraintLayout 构建的各种UI增强功能 ,包括以下内容:
- 新支持 创建 分界线(栅栏)。
- 新支持创建组:在工具栏中,选择 Guidelines > Add Group (需要ConstraintLayout 1.1.0 beta 2 或更高版本)
- 创建链接的新UI:选择多个视图,然后右键单击并选择 Chain。
布局检查器
该布局检查包括增强您的应用布局,以使其更容易调试问题,包括分组属性分为普通类和两个新的搜索功能,查看 View Tree 和 Properties 窗格。
APK分析器
您现在可以使用该apkanalyzer工具从命令行使用APK分析器 。
APK分析器也已更新,具有以下改进:
- 对于使用ProGuard构建的APK,您可以加载将功能添加到DEX查看器的ProGuard映射文件,其中包括:
- 粗体节点 指示节点 在 Shrink 代码时不应被移除。
- 用来显示在 Shrink 过程中被删除的节点 的按钮。
- 用于恢复 View树 视图中由ProGuard 混淆的节点的 原始名称 的 按钮。
- DEX 视图现在会 估计 对 每个包、类和方法 影响的大小。
- 顶部的新过滤选项可显示和隐藏字段和方法。
- 在树视图中,DEX文件中未定义的引用节点 以斜体显示。
有关详细信息,请参阅 使用APK分析器分析您的构建 。
预览D8 DEX编译器
Android Studio 3.0包括一个可选的新DEX编译器,称为D8。它将最终替代DX编译器,但您现在可以选择使用新的D8编译器。
DEX编译直接影响应用程序的构建时间、.dex文件大小和运行时性能。而将新的D8编译器与当前的DX编译器进行比较时,D8可以更快地编译并输出较小的 .dex文件,同时具有相同或更好的应用程序运行时性能。
要尝试,请在项目的 gradle.properties 文件中设置以下内容:
android.enableD8=true
有关更多信息,请参阅有关 D8编译器的博文
Google的Maven资源库
Android Studio现在默认使用Google的Maven存储库,而不是依赖于Android SDK Manager来获取Android支持库、Google Play服务、Firebase和其他依赖项的更新。这使您更容易保持库的更新,特别是在使用连续集成(CI)系统时。
默认情况下,所有新项目都包含Google Maven存储库。要更新现有项目,请添加顶层文件google()的repositories块build.gradle:
allprojects {
repositories {
google()
}
}
进一步了解 Google的Maven资源库。
其他变化
- Android Studio的本机调试不再支持32位Windows。我们选择专注于其他平台,因为很少有开发人员正在使用这个平台。如果您使用的是32位Windows,并且计划调试本地代码,则应继续使用Android Studio 2.3。
- 将基础IDE升级到 IntelliJ 2017.1.2,它从2016.3和 2017.1中添加了许多新功能 ,如Java 8语言重构,参数提示,语义突出显示,可拖动断点,搜索中的即时结果等等。
- 增加了许多新的 lint 检查。
- 另请参阅最新的Android Emulator更新 Android Emulator更新
原文地址: https://developer.android.google.cn/studio/releases/index.html