Android Studio3.0爬坑日记

升级AndroidStudio到3.0之后出现好多问题。抽空总结下,节省大家的爬坑时间:

1、遇到的第一个问题就是发现之前项目的butter knife报错,用到注解的应该都会报错

Error:Execution failed for task ':app:javaPreCompileDebug'.
> 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.
    - butterknife-7.0.1.jar
  Alternatively, set android.defaultConfig.javaCompileOptions.annotationProcessorOptions.includeCompileClasspath = true to continue with previous behavior.  Note that this option is deprecated and will be removed in the future.
  See https://developer.android.com/r/tools/annotation-processor-error-message.html for more details.
解决方案:在你的app的build中
android {
    ...
    defaultConfig {
        ...
        //添加如下配置就OK了
        javaCompileOptions { annotationProcessorOptions { includeCompileClasspath = true } }
    }
    ...
}
原因是3.0后禁用批注处理器错误检查,可以通过设置 includeCompileClasspath true 将行为恢复为 Android 插件2.3.0
2、第二个错误:	    
	Error:(22, 5) style attribute '@android:attr/windowEnterAnimation' not found
	Error:(22, 5) style attribute '@android:attr/windowExitAnimation' not found
	Error:(31, 5) style attribute '@android:attr/windowEnterAnimation' not found
	Error:(31, 5) style attribute '@android:attr/windowExitAnimation' not found
	Error:E:\MyProject\Hss\app\build\intermediates\incremental\mergeBaiduDebugResources\merged.dir\values\values.xml:1862 style attribute '@android:attr/windowEnterAnimation' not found
	Error:E:\MyProject\Hss\app\build\intermediates\incremental\mergeBaiduDebugResources\merged.dir\values\values.xml:2545 style attribute '@android:attr/windowEnterAnimation' not found
	Error:failed linking referencesError:java.util.concurrent.ExecutionException: com.android.builder.internal.aapt.AaptException: 
	AAPT2 link failed:Error:com.android.builder.internal.aapt.AaptException: AAPT2 link failed:
	Error:Execution failed for task ':app:processBaiduDebugResources'.
	> Failed to execute aapt(因为当时没有粘贴自己项目的报错信息,这里粘贴别人的说明一下问题)
	解决方案:
	在gradle.properties中关闭APPT2 编译
即在Project/gradle.properties中添加 android.enableAapt2=false,原因还有搞清楚,有清楚的可以留言告诉我,大家互相学习。
	   3、在Android Studio3.0打包时,build.gradle文件中
  applicationVariants.all { variant ->
       variant.output[0].outputFile.each { output ->
           def outputFile = output.outputFile
             if (outputFile != null && outputFile.name.endsWith('.apk')) {
              outputFileName  = outputFile.name.replace(".apk", "-${defaultConfig.versionName}.apk")
              output.outputFile = new File(outputFile.parent, fileName)
            }
        }
    }这段代码会报错:"Cannot set the value of read-only property 'outputFile"更改为:
	android.applicationVariants.all { variant ->
    		variant.outputs.all {
      	        outputFileName = "_${variant.name}_${variant.versionName}.apk"
   			 }
			}
     4、在Android Studio3.0打包的时候会出现打包成功后总是安装失败的问题,具体问题可以参考下面两篇博文:
		http://blog.csdn.net/love_yan_1314/article/details/70184528
		http://blog.csdn.net/zgh0711/article/details/72190165
	5、apt插件问题(Error:Cannot choose between the following configurations of project :mylibrary:):
		Error:Cannot choose between the following configurations of project :mylibrary:
		- debugApiElements
		- debugRuntimeElements
		- releaseApiElements
		- releaseRuntimeElementsAll of them match the consumer attributes:
	解决方案如下:
	1.在project——>build.gradle中注释 classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8'
	2.在app——>build.gradle中注释apply plugin: 'com.neenbedankt.android-apt'
	3.将app——>build.gradle——>dependencies中apt开头的改为annotationProcessor
	   如:
	//    apt 'com.google.dagger:dagger-compiler:2.4'
	annotationProcessor 'com.google.dagger:dagger-compiler:2.4'


阅读更多

没有更多推荐了,返回首页