Android Apk包安装应用闪退,出现 java.lang.RuntimeException Unable to instantiate application Caused by: java

时间:2024-05-23 10:18:02

第一种方案:这个问题花了好大工夫,百度了半天,估摸是Android加了什么条件,限制了debug包的安装。生成release包就没任何问题,亲测。

第二种方案:

1、把 Android Studio 的 Instant Run 给关掉,File → Settings → Build,Execution,Deployment → Instant Run 如图:

  Android Apk包安装应用闪退,出现 java.lang.RuntimeException Unable to instantiate application Caused by: java

  注意:应该在“ Project ”状态下进行设置。

  2、然后把所有生成缓存清除掉:即删除build这两个文件,如下图:

  Android Apk包安装应用闪退,出现 java.lang.RuntimeException Unable to instantiate application Caused by: java

  3、clear project 清理一下项目,然后重新运行项目。

  Android Apk包安装应用闪退,出现 java.lang.RuntimeException Unable to instantiate application Caused by: java

  注意: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)