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
如图,点击Edit Configurations,查看你app配置中的是否有如下选项:
如果没有则点击 号:
然后这里置为空直接ok:
然后点击ok重新run,如果不出意外该错误已经解决。
解决方案2:Gradle build
如果第一种方法还未解决你的问题,可以尝试:
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的设置,去掉第一个复选框的勾,如下图:
Android Studio gradle无法下载解决方案
解决方案
打开~/.gradle/wrapper/dists,可以看到类似下图:
然后打开:
http://services.gradle.org/distributions/
找到你的目录下的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’
问题详情
报错如下:
解决方案
Rebuild
ERROR: Could not find com.android.tools.build:gradle:x.x.x
原因
这个错误有时候是因为你网络不能翻墙,但是大多数时候是因为你搞错了gradle插件
版本和gradle
版本的区别,gradle插件
版本截止2019.4.21日的最新版本为3.4.1,而gradle
版本的当前最新版本为5.1.1,build.gradle
中的classpath 'com.android.tools.build:gradle:x.x'
是gradle插件版本,而gradle-wrapper.properties
中的才是gradle版本,所以很多人在build.gradle中设置了最新版本的gradle版本号,提示找不到资源,以为是自己网络的问题,事实是真的找不到…