本文排版略有问题,欢迎大家关注我的微信公众号“IT工匠”阅读原文以及获取更多资源(涉及算法、数据结构、java、深度学习、计算机网络、python、Android等互联网技术资料)。
The APK file app-debug.apk does not exist on disk.
问题详情
Android studio run app的时候报错The APK file app-debug.apk does not exist on disk.
解决方案1:Edit Configurations
3
如图,点击Edit Configurations,查看你app配置中的是否有如下选项:
4
如果没有则点击+号:
5
然后这里置为空直接ok:
6
然后点击ok重新run,如果不出意外该错误已经解决。解决方案2:Gradle build
如果第一种方法还未解决你的问题,可以尝试:
7
8
9
Gradle sync failed java.lang.AssertionError Invalid libraryOrderEntry
问题详情
Android报错Gradle sync failed java.lang.AssertionError Invalid libraryOrderEntry
解决方案
File > Invalidate Caches/Restart
Can’t create handler inside thread that has not called Looper.prepare()
问题详情
在Android子线程中使用Toast时会报错:
- 代码:
Toast.makeText(this, "", Toast.LENGTH_LONG) .show();
- 报错:
java.lang.RuntimeException: Can't create handler inside thread that has not called Looper.prepare()
解决方案一
增加Looper.prepare();
Looper.prepare(); Toast.makeText(this, "", Toast.LENGTH_LONG) .show(); Looper.loop();// 进入loop中的循环,查看消息队列
解决方案二
post 给主线程去处理
mainHandler.post(new Runnable() {
@Override
public void run() {
if (toast == null) {
toast = Toast.makeText(context, "", Toast.LENGTH_SHORT);
}
toast.setText(msg);
toast.setDuration(Toast.LENGTH_SHORT);
toast.show();
}
});
org.gradle.api.resources.ResourceException Could not get resource
问题详情
Android Studio报错:
Caused by: org.gradle.api.resources.ResourceException: Could not get resource ‘https://dl.google.com/dl/android/maven2/com/android/tools/build/gradle/3.1.0/gradle-3.1.0.pom 7
解决方案
这里写图片描述
Session ‘app’ Error Installing
问题详情
Android studio Session ‘app’ Error Installing APK
解决方案一
Build -> Clean Project再编译
解决方案二
进行手机重新连接
解决方案三
改变Android studio的设置,去掉第一个复选框的勾,如下图:
10
Android Studio gradle无法下载解决方案
解决方案
打开~/.gradle/wrapper/dists,可以看到类似下图:
12
然后打开:
http://services.gradle.org/distributions/
11
找到你的目录下的gradle版本并点击下载
将下载到的压缩包放到类似~/.gradle/wrapper/dists/gradle-4.4-all/9br9xq1tocpiv8o6njlyu5op1目录下,不需要解压,直接把压缩包放进去就可以,然后重启as就可跳过gradle的在线下载NDK报错:clang++: error: linker command failed with exit code 1 (use -v to see invocation)
解决方案
这种错误最常见的出现形式是sync的时候没错,但是build的时候就报这个错误,解决方案:
在app的defaultConfig中的ndk节点中添加:
stl "gnustl_static"
即可
NDK报错:Tried extensions .c .C .c++ .cc .cpp .cxx .m .M .mm .h .hh .h++ .hm .hpp.hxx .in .txx
这种错误大多数情况下是因为编译器找不到对应的c文件,解决方案是在cmakelist中用全路径代替简略路径,比如:
file(GLOB SignalNative_SRC ${CMAKE_SOURCE_DIR}/src/main/cpp/Signal/*.cpp)
而不是
file(GLOB SignalNative_SRC ${src/main/cpp/Signal/*.cpp)
FragmentTransaction commit already called
问题详情
这种情况一般是因为你在全局范围实例化了一个FragmentTransaction,然后多次使用同一个实例进行fragment跳转
解决方案
将:
private FragmentManager fragmentManager;
private FragmentTransaction fragmentTransaction;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
fragmentManager = getSupportFragmentManager();
fragmentTransaction = fragmentManager.beginTransaction();
.....
}
@Override
public void startfragment(Fragment targetFragment, boolean addToBackStack) {
fragmentTransaction.replace(R.id.id_fragment_layout, targetFragment, targetFragment.getClass().getName());
if (addToBackStack) {
fragmentTransaction.addToBackStack(null);
} else {
mainPresenter.initActivityData();
}
fragmentTransaction.commitAllowingStateLoss();
}
改为:
private FragmentManager fragmentManager;
private FragmentTransaction fragmentTransaction;
@Override
public void startfragment(Fragment targetFragment, boolean addToBackStack) {
fragmentManager = getSupportFragmentManager();
fragmentTransaction = fragmentManager.beginTransaction();
fragmentTransaction.replace(R.id.id_fragment_layout, targetFragment, targetFragment.getClass().getName());
if (addToBackStack) {
fragmentTransaction.addToBackStack(null);
} else {
mainPresenter.initActivityData();
}
fragmentTransaction.commitAllowingStateLoss();
}
Error:Execution failed for task ‘app:preDebugAndroidTestBuild’
问题详情
报错如下:
4
解决方案
Rebuild

本文暂时没有评论,来添加一个吧(●'◡'●)