您的位置:首页 > 移动开发 > Android开发

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

2017-05-03 21:26 621 查看
本来不想发这篇博客的,但是还是看到有人问这个问题,我来分享一下,希望能帮到大家,第一次发博客,记录一下心酸史吧。

修改一行代码,搞定通过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)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐