第一种方案:这个问题花了好大工夫,百度了半天,估摸是Android加了什么条件,限制了debug包的安装。生成release包就没任何问题,亲测。
第二种方案:
1、把 Android Studio 的 Instant Run 给关掉,File → Settings → Build,Execution,Deployment → Instant Run 如图:
注意:应该在“ Project ”状态下进行设置。
2、然后把所有生成缓存清除掉:即删除build这两个文件,如下图:
3、clear project 清理一下项目,然后重新运行项目。
注意:apk 存放于 app → build → outputs → apk 目录下。
第三方案:种方案:(别人的博客)修改一行代码,搞定通过Apk方式安装应用闪退之 java.lang.RuntimeException Unable to instantiate application
Caused by: java.lang.ClassNotFoundException: Didn't find class "com...activity
着急的朋友,看最后几句话就行了!!!!!(本文前面讲述可能是你踩过和我一样的坑!!!,重要的就改一个地方就行,着急解决问题的看最后几句话。。)
解决在Android Studio上可以运行程序安装到手机,但是把debug.apk安装包放在手机里面再运行安装就闪退问题
出现
java.lang.RuntimeException Unable to instantiate application
Caused by: java.lang.ClassNotFoundException: Didn't find class "com...activity
纳尼??
Activity这个类都找不到了??我的路径,包名,还有activity也不是抽象的,清单文件activity的路径也对
该加.ui.SplashActivity的也加了,无赖,搞了一天
第二天去公司,看自己在公司写的demo也是这个情况,而以前的写好的项目就不会出现这个情况
我就开始对比,找原因,终于被我找到了。
出现原因,手痒要安装最新版Android Studio 2.3.1
去google官网下载安装包,安装完成,创建项目,就给你默认用gradle3.3,就默认去下载gradle3.3
然后,因为长城,可能你要下一整天,然后只能关掉去gradle官网下载3.3
之后,恭喜你成功走入Google工程师的坑,3.3就是有问题,我不造为啥,也不要问我
继续往下看。
解决方法:
出现这个异常,是因为
工程里面的 gradle wrapper gradle-wrapper.roperties里面
distributionUrl=https\://services.gradle.org/distributions/gradle-3.3-all.zip
gradle版本是是gradle-3.3-all.zip
//打包出来的apk包只有400-600kb(HelloWorld这种项目),虽然HelloWorld项目不大,打出来的apk确实很小,
但是用gradle3.3和gradle2.14.1打包差别很大,使用gradle3.3的Helloworld的debug包大小只有400-600kb,
而用gradle2.14.1 Hellorold的debug包有1.3MB左右,我就怀疑这个有问题,就去把这个gradle 改为低版本的,
改了之后,问题又来了
纳尼???
Error:(1, 0) Minimum supported Gradle version is 3.3. Current version is 2.14.1.
Please fix the project's Gradle settings.
Fix Gradle wrapper and re-import project</a><br><a href="openGradleSettings">
最小支持的gradle版本是3.3,当前版本是2.14.1
点击修复??
不能,点击修复就把你改回
distributionUrl=https\://services.gradle.org/distributions/gradle-3.3-all.zip
??肿么办,只有这个按钮可以点击
出现的提示版本的原因是
项目里面的gradle
dependencies {
// classpath 'com.android.tools.build:gradle:2.3.0'
classpath 'com.android.tools.build:gradle:2.2.3'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
//你只需要像我一样,把grale:2.3.0改为2.2.x或者直接改和我一样就行了
之后可能Studio会提示你升级gradle为3.3,让他闭嘴就行。
改完之后,同步,运行没问题,把build文件夹下生成的apk包传到手机上在安装也不会出现闪退问题
这时候,观察一下debug.apk,已经有1.3MB左右了,不是以前的300kb左右的了。
我太啰嗦了,来个简单粗暴的
不要使用gradle3.3,去gradle官网下载比他低的,比如2.14.1
然后clen工程,OK。
到底是什么原因???真的是这样的么????
我真的很伤,所以一定要弄清楚,然后,我就开始捣鼓,增删改查都用了,,,,是不是回归数据库了???
如下:
第一波:
本人亲测,gradle3.2-all和gradle-3.5-all都可以,gradle3.5-all下载后
distributionUrl=https\://services.gradle.org/distributions/gradle-3.5-all.zip
配置了之后,关闭AndroidStudio,重新打开,会自动去下载,然后把下载好的3.5放到gradle3的文件夹
Studio没有自动解压,然后我就手动解压了,在Settings 里面的gradle路径设置一下就可以了。
然而。打的debug.apk都是1.3MB,肯定不是这个gradle版本问题!!!
第二波:
改工程下的build.gradle
的
classpath 'com.android.tools.build:gradle:2.3.0'
大坑啊啊啊啊!!!!把它改为2.3.0就apk就是400KB ,然后安装到手机上,果然,不能启动!!!
原因得到了。。。
解决方法如下 ,记住,一行代码,Only改一行代码,,,如下。
____________________________________
工程下的build.gradle文件修改
dependencies {
classpath 'com.android.tools.build:gradle:2.2.3'
// classpath 'com.android.tools.build:gradle:2.3.0' (干掉这句,,,,换成比他小的版本的!!!)
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
把2.3.0干掉,这个插件害人!改为比它低的。终于找到问题所在,把gradle3.2-all换成3.3也米有问题了!!!
根不不是distributionUrl=https\://services.gradle.org/distributions/gradle-3.5-all.zip版本问题
ok了终于,一句代码搞定!!!与其他的都没有关系,害我重装两次studio,搞了两天半,就因为这句代码,,,哎。。。
修改一行代码,解决Apk方式安装应用闪退之 java.lang.RuntimeException Unable to instantiate application
Caused by: java.lang.ClassNotFoundException: Didn't find class "com...activity
解决出现的问题是,Apk通过数据线连接电脑可以直接安装apk,发送debug包或者打包安装后打开闪退问题。
一行代码如下
classpath 'com.android.tools.build:gradle:2.3.0' (干掉这句,,,,换成比他小的版本的!!!比如2.2.3)