Eclipse迁移Android Studio遇到的问题
1:Error:Execution failed for task ':app:transformNative_libsWithStripDebugSymbolForDebug'.
> Java.lang.NullPointerException (no error message:
编译可以通过,但是一运行就报这个错,是一个NDK版本的问题 Android Studio2.2的一个bug
解决方法:
进 local.properties 中把 ndk.dir 直接删除禁用,然后clean–rebuild 就可以了
就是禁用ndk进 local.properties 中把 ndk.dir 直接删除禁用,然后clean–rebuild 就可以了
就是禁用ndk
2:Error:Execution failed for task ':XXXX:processDebugManifest'.
> Manifest merger failed with multiple errors, see logs
原因之一:一个工程里面有多个项目,其中一个主项目需要依赖其中的一个modle,而这个modle本身也含有Manifest文件。
Android Studio的gradle插件默认会启用Mainfest Merger Tool,如果你需要依赖的那个modle或者library项目
的Manifest文件中也包含与主项目相同的属性,例如icon、theme等等,就会出现清单文件合并失败的错误,编译不通过。
解决方法:
在Manifest.xml的根标签上加入xmlns:tools="http://schemas.Android.com/tools",
然后在application标签下添加tools:replace="icon,label,theme",多个属性用逗号隔开。
原因之二:多个Moudle的build.gradle中的编译版本不同所致
Moudle中的编译版本应不低于主程序的编译版本
compileSdkVersion 20
buildToolsVersion "21.1.2"
defaultConfig {
minSdkVersion 11
targetSdkVersion 20
}
原因之三:清单文件报错 在Eclipse中清单文件有些错误是检测不出来的 比如多个友盟注册 Service未指定优先级
这些错误在Androiud Studio中都会导致这个错误 在Message中点击方形的第二排第四个按钮可以看到详细的报错信息
3:android studio 非法字符: \65279 Error:(1, 10) 错误: 需要class, interface或enum
这个错误是文件BOM导致的
只要将文件编码方式改掉就行,不要使用UTF-8 WITH BOM(UTF-8包含签名)
使用UTF-8无Bom格式
4:Expected resource of type styleable[ResourceType]
在使用TypedArray获取数据属性值的时候,编译时出现错误,但是能正常调试,但是使用gradle打包apk的时候,会被检查出来,导致打包失败
这是英文错误信息
This inspection looks at Android API calls that have been annotated with various support annotations (such as RequiresPermission or UiThread)
and flags any calls that are not using the API correctly as specified by the annotations.
Examples of errors flagged by this inspection:
Passing the wrong type of resource integer (such as R.string) to an API that expects a different type (such as R.dimen).
Forgetting to invoke the overridden method (via super) in methods that require it
Calling a method that requires a permission without having declared that permission in the manifest
Passing a resource color reference to a method which expects an RGB integer value.
翻译过来是这样的;
API中有很多种注解,这些注解在一定程度上规定了某些方法使用,例如要求声明某个权限或者必须是UI主线程中调用等,如果没有正确按照API的方法上的注解规定使用,就是出现这个错误的提示信息
例如:
api要求使用R.dimen,你却使用了R.string;
重写了父类的方法,但是没有加override/supper关键词
使用了要求有某种权限的方法,但是这个权限在配置文件manifest中没有声明
要求使用RGB颜色值作参数的方法你使用了资源颜色
这个方法的提示信息是Expected resource of type styleable [ResourceType]
也就是说我们是因为违反了[ResourceType]这个规定,因为getDimension(int,int)想要的参数是资源类型,就是R.XX.XX的这种,但是我们这里直接传递的是int类型,虽然都是int类型的,
但是不是他想要的,就报错了,这里实验一下,当我们传递一个int类型的R.styleable.XX,这个提示信息就消失了,
异常解决:
在使用TypedArray的语句,方法上或者类上加上注解@SuppressWarnings("ResourceType")
关于解决方法:
SuppressWarning("XXX")
方法的作用是告诉编译器,一个让类型的警告不再显示.参数"XXX",就是指定某种类型的警告.
就像我们的使用SuppressWarning("ResourceType"),就是说不要再报关于ResourceType类型的警告错误了.
5:打包的时候遇到此错误
Error:A problem was found with the configuration of task ':eglobal:packageRelease'.
> File 'D:\StudioWorkspace\eglobal\eglobal\build\intermediates\res\resources-release-stripped.ap_' specified for property 'resourceFile' does not exist.
原因:build.gradle中加了 shrinkResources true 打包的时候会删除一些不必要的文件结果就打包失败了
6:在工程的gradle中设置
可以支持超过65k的方法数
defaultConfig {
// Enabling multidex support.
multiDexEnabled true
}
7:com.android.build.api.transform.TransformException: java.util.zip.ZipException: duplicate entry: ch/boye/httpclientandroidlib/ConnectionClosedException.class
解决方法:
重复包,把对应重复的删除即可一般为v4冲突
8:
android {
lintOptions{
//checkReleaseBuilds就是在打包Release版本的时候进行检测,这里就直接关掉了,
//也可以打开,这样报错还会显示出来。关键的就是abortOnError一定要设为false,这样即使有报错也不会停止打包了。
checkReleaseBuilds false
abortOnError false//执行lint检查,有任何的错误或者警告提示,都会终止构建,我们可以将其关掉。
ignoreWarnings true//如果为true,则只报告错误
}
}
9:
FATAL EXCEPTION: main
Process: com.wanda.property_client, PID: 11910
java.lang.NoClassDefFoundError: org.apache.cordova.PluginEntry
导致4.4系统安装程序直接崩掉
解决:
在application中加入:
protected void attachBaseContext(Context base) {
super.attachBaseContext(base);
MultiDex.install(this);
}
10:
Android Studio导入github一个项目library
出现了Error:No such property: GROUP for class: org.gradle.api.publication.maven.internal.ant.DefaultGroovyMavenDeployer
解决方式:
在Android Studio里,左上角将项目的显示方式改为project,然后找到导入的库的文件夹,点开,打开其build.gradle文件
然后你注释掉最后一行代码(与maven有关的,比如://apply from: './gradle-mvn-push.gradle'),重新build一下就OK了
11:android studio升级2.0后启动APP会出现白屏
谷歌在AS2.0里加入了快速启动功能,就是不需要重新安装apk就可以显示改变的代码效果。
一个治标的方法是你可以点击这个按钮重启app,一般重启一次到两次就可以进入界面了,
还有一个治本的办法就是吧Instance run这个功能取消,
方式:进入设置Build,Exception,Deployment--->Instant Run 将所有的钩钩取消掉
12:在studio的布局页面无法实现预览 是主题的问题
Missing styles. Is the correct theme chosen for this layout?
Use the Theme combo box above the layout to choose a different layout, or fix the theme style references.
Failed to find style 'textViewStyle' in current theme
解决方法如下:
layout预览界面(Graphic Layout),右上角有个Theme的选择项,默认为notitle,
根据喜好随意设定值,我们这里设定为android以前默认的Theme.black.
13:
XML中出现错误:
In Gradle projects, always use http://schemas.Android.com/apk/res-auto for custom attributes
http://schemas.android.com/apk/res/com.xxx.xxx
根据提示信息修改为:http://schemas.android.com/apk/res-auto