Android Studio报错--Error: Library projects cannot set applicationId. applicationI
今天在导入一个Android Studio 工程时,发生了这样的错误:
Error: Library projects cannot set applicationId. applicationId is set to "com.du.android.recyclerview" in default config
我是很苦恼啊,整了一晚上才算明白,原来导入一个库/工程不是那么容易的.出现这个错误的原因在于工程下有个库,库的build.gradle里面defaultConfig内存在:
defaultConfig {
applicationId "com.du.android.recyclerview"
minSdkVersion 21
targetSdkVersion 21
versionCode 1
versionName "1.0"
}
红色部分的字体,这时删除红色标注的内容即可!
问题一:导入SDK中的Samples后,Messages中提示“Error:Cause: failed to find target android-19.0.1 Please install the missing platform from the Android SDK Manager.”
原因:AS安装后,自带的Build-tools版本是19.0.3,而示例是在19.0.1下创建的。
解决:1、使用SDK Manager把19.0.1装上;2、修改project->app->build.gradle中的buildToolsVersion "19.0.1"改为buildToolsVersion "19.0.3"。
另外如果从网上下来的示例导入后,一般需要修改compileSdkVersion为19。
问题二:安装新版本JDK后,编译时仍使用旧版本的JDK
解决:除了更新JAVA_HOME环境变量,在AS中调整File->Project Structure->SDK Location和File->Other Settings->Default Project Structure->SDK Location。
问题三:AS的代码编辑窗口中和运行时,中文显示乱码
解决:AS的代码编辑窗口中的乱码,只需要把IDE右下角的UTF-8改为GBK;运行时显示乱码,1、在 project->app->build.gradle中添加compileOptions.encoding = "GBK"。2、不能在布局文件中直接输入中文,需要在R文件中注册下,比如<activity android:label="中文" >改为<activity android:label="@string/chinese" >,在strings.xml中添加<string name="chinese">中文</string>。
问题四:AS导入包含jni设置的工程,编译错误
解决:一般Eclipse工程,AS可以直接导入。如果有问题,确认该工程在Eclipse中运行良好,导出为AS工程后,再在AS中导入。
问题五:MainActivity.java中显示R类路径无效
解决:因为某些原因,AS没有自动生成R文件。比如项目依赖的库文件版本与指定的compileSdkVersion不符,这时需要手动指定需要编 译的库文件版本号。比如android.compileSdkVersion为19,那么在 project->app->build.gradle末尾添加
dependencies {
compile 'com.android.support:support-v4:+' 改为 compile 'com.android.support:support-v4:19.+'
compile 'com.android.support:appcompat-v7:+'改为compile 'com.android.support:appcompat-v7:19.+'
}
注意dependencies{}与android{}同级
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:1.0.0'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
allprojects {
repositories {
jcenter()
}
}