问题一:导入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{}同级
1:错误 Failure [INSTALL_FAILED_OLDER_SDK]
打开android工程导航列表如下图
找到build.gradle 修改minsdkversion和targetSdkVersion的值 改成你手机或者模拟器的版本对应的api等级
2:Error:duplicate files during packaging of APK ........
Path in archive: META-INF/LICENSE.txt
...................
You can ignore those files in your build.gradle:
android {
packagingOptions {
exclude 'META-INF/LICENSE.txt'
}
}
Error:Execution failed for task ':app:packageDebug'.
> Duplicate files copied in APK META-INF/LICENSE.txt
File 1: /Users/Lin1/AndroidStudioProject/app/libs/jaxen-1.1-beta-6.jar.jar
File 2: /Users/Lin1/AndroidStudioProject/app/libs/dom4j-1.6.1.jar
解决办法是在build.gradle中插入
packagingOptions {
exclude 'META-INF/LICENSE.txt' }
3:Android Studio-Gradle项目中添加JNI生成文件(.so文件)
解决方案http://www.tuicool.com/articles/yuAjAz
其实弄了大半天无非就是把.SO文件打包到APK的lib文件夹中,假如仔细阅读了Gradle的使用方法,自然就知道其实Gradle官方在新版已经自动实现了打包.SO文件的.很简单级就是在配置的android节点下build.gradle加入下面的内容就ok:
sourceSets { main { jniLibs.srcDirs = ['libs'] } }其他地方无需修改,整个项目的配置文件如下:
apply plugin: <span class="string" style="color: rgb(221, 17, 68);">'android'</span> android { <span class="indent"> </span>compileSdkVersion <span class="number" style="color: rgb(0, 153, 153);">19</span> <span class="indent"> </span>buildToolsVersion <span class="string" style="color: rgb(221, 17, 68);">"19.0.0"</span> <span class="indent"> </span>defaultConfig { <span class="indent"> </span><span class="indent"> </span>minSdkVersion <span class="number" style="color: rgb(0, 153, 153);">16</span> <span class="indent"> </span><span class="indent"> </span>targetSdkVersion <span class="number" style="color: rgb(0, 153, 153);">19</span> <span class="indent"> </span><span class="indent"> </span>versionCode <span class="number" style="color: rgb(0, 153, 153);">1</span> <span class="indent"> </span><span class="indent"> </span>versionName <span class="string" style="color: rgb(221, 17, 68);">"1.0"</span> <span class="indent"> </span>} <span class="indent"> </span>buildTypes { <span class="indent"> </span><span class="indent"> </span>release { <span class="indent"> </span><span class="indent"> </span><span class="indent"> </span>runProguard <span class="keyword" style="font-weight: bold;">false</span> <span class="indent"> </span><span class="indent"> </span><span class="indent"> </span>proguardFiles getDefaultProguardFile(<span class="string" style="color: rgb(221, 17, 68);">'proguard-android.txt'</span>), <span class="string" style="color: rgb(221, 17, 68);">'proguard-rules.txt'</span> <span class="indent"> </span><span class="indent"> </span>} <span class="indent"> </span>} <span class="indent"> </span>sourceSets { <span class="indent"> </span><span class="indent"> </span>main { <span class="indent"> </span><span class="indent"> </span><span class="indent"> </span>jniLibs.srcDirs = [<span class="string" style="color: rgb(221, 17, 68);">'libs'</span>] <span class="indent"> </span><span class="indent"> </span>} <span class="indent"> </span>} } dependencies { <span class="indent"> </span>compile fileTree(dir: <span class="string" style="color: rgb(221, 17, 68);">'libs'</span>, <span class="keyword" style="font-weight: bold;">include</span>: [<span class="string" style="color: rgb(221, 17, 68);">'*.jar'</span>]) }这不就是很简单么,无需手动打包,也无需很复杂的打包拷贝命令,简单的操作就ok。可以说多看看官方文档是多么的重要。
4:How to import android project as library and NOT compile it as apk (Android studio 1.0)
解决方案http://stackoverflow.com/questions/27536491/how-to-import-android-project-as-library-and-not-compile-it-as-apk-android-stud
当然也有可能是你引入的android 工程不是libray工程
将你想要引入的工程改成library 将想要引入的工程的build.gradle
apply plugin: 'com.android.application'
改成
apply plugin: 'com.android.library'
5:Suggestion: use tools:overrideLibrary="XXXX" to force usage
...............
> Manifest merger failed with multiple errors, see logs
AndroidManifest.xml添加
<uses-sdk tools:overrideLibrary="XXXX"/>