遇到该异常是在listview中适配器中的getView方法里,导入布局后,设置布局中的控件layoutParams时报此异常,因item的父控件是listview,所以使用LayoutParams需要找其对应的类型,需要将LinearLayout LayoutParams修改成AbsListview LayoutParams即可;
在使用viewholder的适配器当中,使用if语句设置资源时,必须使用else,如果不设置在滑动的时候当convertView不为null时只走了if当中的一种情况,再滑动回原来的状态时,convertView使用的缓存视图当中的值,因为滑动前后走if情况不一,所以照成复用的时候会有数据错乱以及当前指针跟position不一致的情况,正确做法是使用if的时候必须使用else;在给控件设置点击事件的时候,在if情况中设置监听的时候,在else当中也必须要设置监听,else当中监听器设置nul即可;
这个是Android studio中导入eclipse的第三方依赖包出现的错误,提示是在清单文件里的错误,把manifest中的application标签内容全部删除后再次刷新后错误消失,具体原因待查。
另外贴上其他网友的解决办法 http://blog.csdn.net/qq_33785670/article/details/52455241
在项目的project模式下,打开.idea目录下的vcs.xml文件,将
然后打开项目所在磁盘,打开项目文件夹后把.svn文件夹删除,注意.SVN是隐藏文件,需要设置可查看隐藏文件;
再回到as中查看,这时就可以重新关联SVN了;
这是因为OkHttp请求回调中response.body().string()只能有效调用一次,在调用了response.body().string()方法之后,response中的流会被关闭,因此不能二次调用;
Android aidl导出jar包时需要注意,直接导出src会出现类找不到的情况。解决方法:导出时把gen文件夹下aidl生成的 Java文件选上即可。
Toast 的显示需要出现在一个线程的消息队列中;因为Toast在创建的时候会依赖于一个Handler,一个Handler是需要有一个Looper才能够创建,而普通的线程是不会自动去创建一个Looper对象,而在主线程中会默认创建一个Looper对象,因此不能在子线程中直接显示Toast;
有两种方法解决:
1、在开启的子线程中执行Looper.prepare()来构建一个Looper,然后在显示Toast,但是不要忘记执行Looper.loop()来加载这个Looper,
2、直接使用主线程的Looper对象;获取主线程的Looper的方法是Looper.getMainLooper()
Execution failed for task ':app:lint'.> Lint found errors in the project; aborting build.
只要在当前app的app/build.gradle文件内增加如下代码,
android {
lintOptions {
abortOnError false
}
}
由于本机设备是x86架构,而所运行的项目为arm架构,只需要在项目的build.gradle中的android中加入以下代码:
splits {
abi {
enable true
reset()
include 'x86', 'armeabi-v7a'
universalApk true
}
}
原因分析: java8才支持静态接口方法,Android N 要求jdk版本为1.8
解决方案:定义和调用静态接口方法的module编译时都使用jdk1.8即可;
错误1:
CommandWithNoStdoutInvokationFailure: Gradle initialization failed.
UnityEditor.Android.Command.RunWithShellExecute (System.String command, System.String args, System.String workingdir, System.String errorMsg) (at :0)
UnityEditor.Android.AndroidJavaTools.RunJavaWithShellExecute (System.String args, System.String workingdir, System.String error) (at :0)
UnityEditor.Android.GradleWrapper.WarmupGradle (UnityEditor.Android.AndroidJavaTools javaTools, System.String workingDir, System.String baseCommand) (at :0)
Rethrow as GradleInvokationException: Gradle initialization failed.
UnityEditor.Android.GradleWrapper.WarmupGradle (UnityEditor.Android.AndroidJavaTools javaTools, System.String workingDir, System.String baseCommand) (at :0)
UnityEditor.Android.PostProcessAndroidPlayer+c__AnonStorey0.<>m__0 () (at :0)
System.Threading.ThreadHelper.ThreadStart_Context (System.Object state) (at :0)
System.Threading.ExecutionContext.RunInternal (System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, System.Object state, System.Boolean preserveSyncCtx) (at :0)
System.Threading.ExecutionContext.Run (System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, System.Object state, System.Boolean preserveSyncCtx) (at :0)
System.Threading.ExecutionContext.Run (System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, System.Object state) (at :0)
System.Threading.ThreadHelper.ThreadStart () (at :0)
UnityEngine.UnhandledExceptionHandler:m__0(Object, UnhandledExceptionEventArgs)
解决方案:在Build settings界面,安卓导包选项中,生成系统选择Internal(deprecated)一项,其他不变;如下图:
错误信息:
Could not find com.android.tools.build:aapt2:3.3.2-5309881.
Searched in the following locations:
- file:/Users/heshuiguang/Library/Android/sdk/extras/m2repository/com/android/tools/build/aapt2/3.3.2-5309881/aapt2-3.3.2-5309881.pom
- file:/Users/heshuiguang/Library/Android/sdk/extras/m2repository/com/android/tools/build/aapt2/3.3.2-5309881/aapt2-3.3.2-5309881-osx.jar
- file:/Users/heshuiguang/Library/Android/sdk/extras/google/m2repository/com/android/tools/build/aapt2/3.3.2-5309881/aapt2-3.3.2-5309881.pom
- file:/Users/heshuiguang/Library/Android/sdk/extras/google/m2repository/com/android/tools/build/aapt2/3.3.2-5309881/aapt2-3.3.2-5309881-osx.jar
- file:/Users/heshuiguang/Library/Android/sdk/extras/android/m2repository/com/android/tools/build/aapt2/3.3.2-5309881/aapt2-3.3.2-5309881.pom
- file:/Users/heshuiguang/Library/Android/sdk/extras/android/m2repository/com/android/tools/build/aapt2/3.3.2-5309881/aapt2-3.3.2-5309881-osx.jar
解决方案:在项目的gradle下的allprojects中添加 google() 库
allprojects {
repositories {
//添加谷歌库
google();
flatDir {
dirs 'libs'
}
}
}
解决方案:在AndroidStudio的terminal中输入 gradle compileDebugSource --stacktrace -info 命令,重新编译查看gradle的具体报错信息,如果报错中类似 processDebugManifest 信息的,同样把可以使用 gradle processDebugManifest 跟进出错的位置,以此类推,直到找到最终的错误位置;
打开Preferences,在如下图中红色线圈住的位置添加*.iml,即可解决
分析: module中build.gradle下的instrumentTest.setRoot(‘tests’) ,instrumentTest已经在旧版本中被弃用导致;
解决:使用 androidTest 替换 instrumentTest 即可;
解决:删除studio项目app下的build文件,然后重新编译;
(注:网上有的方案是在手机设置——>开发者选项——>关闭MIUI优化,有的是开启未知来源软件安装,但这两个方法对我的问题不管用,最后删除build文件夹好使了)
分析:引用的包冲突、引用的依赖库manifest.xml文件中package名称重复、或者build.gradle 中少jdk1.8的引用;
解决:1、冲突的包删除;
2、修改依赖库包名package;
3、在build.gradle中,android括号下添加:
android {
compileSdkVersion 28
//添加1.8jdk引用
compileOptions {
sourceCompatibility = '1.8'
targetCompatibility = '1.8'
}
}
解决:打开项目的build.gradle,添加google库和jcenter库,如下:
buildscript {
repositories {
//添加google库和jcenter库,顺序必须google库在前
google()
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.4.0'
}
}
allprojects {
repositories {
//添加google库和jcenter库,顺序必须google库在前
google()
jcenter()
flatDir {
dirs 'libs'
}
}
}
解决:方法同18,在项目的build.gradle中添加google库和jcenter库,顺序必须google库在前
allprojects {
repositories {
//添加google库和jcenter库,顺序必须google库在前
google()
jcenter()
flatDir {
dirs 'libs'
}
}
}
unity导出xcode工程报libiPhone-lib.a错误
解决:在build setting中找到 other link flags 添加三项:-Wl -undefined dynamic_lookup
studio编译安装apk时提示此问题,是由于手机的存储空间不足,删除一些APP即可;
出现该问题的背景,一个工程依赖一个library,这个library接入了第三方的SDK;
解决:将整个工程进行编译时,需要在app的build.gradle中的repositories中加入library的libs路径,如下方式: