主活动的ClassNotFoundException-Android Studio 0.8.2

主活动的ClassNotFoundException-Android Studio 0.8.2,android,android-studio,Android,Android Studio,刚刚更新到Android Studio 0.8.2,当我的一个应用程序是用0.8.2构建的时,我突然在主活动的启动中发现ClassNotFoundException 该应用程序处于版本控制(Git)中,因此我检查了旧版本,它们现在在执行时表现出相同的症状,并且当使用0.8.1构建时,它们肯定工作正常 我尝试过干净的重建、gradle同步、手动删除build/and、.gradle/dirs、关闭和重新打开Android Studio等。我检查了我项目的各种旧版本,并在几个Android设备上测试

刚刚更新到Android Studio 0.8.2,当我的一个应用程序是用0.8.2构建的时,我突然在主活动的启动中发现ClassNotFoundException

该应用程序处于版本控制(Git)中,因此我检查了旧版本,它们现在在执行时表现出相同的症状,并且当使用0.8.1构建时,它们肯定工作正常

我尝试过干净的重建、gradle同步、手动删除build/and、.gradle/dirs、关闭和重新打开Android Studio等。我检查了我项目的各种旧版本,并在几个Android设备上测试了APK,调试和发布版本都可以100%再现这个问题

奇怪的是,虽然这个项目是100%可复制的,但我还有另一个项目,它的建设和执行都很好

我已经用apktool分离了Android Studio 0.8.2输出的APK,这个类肯定在那里

$ pwd
/Users/ben/Development/go-android/Go/build/outputs/apk/Go-debug/smali/au/com/glassechidna/go/content
$ ls
AddTripFragment$1.smali             CreateTripFragment$OnQueryTextListener$1.smali  CreateTripFragment.smali            MainActivity.smali
AddTripFragment.smali               CreateTripFragment$OnQueryTextListener.smali    GoActivity.smali                TrainTimeFragment$1.smali
CreateTripActivity.smali            CreateTripFragment$OnSuggestionListener.smali   GoApplication.smali             TrainTimeFragment.smali
CreateTripFragment$1.smali          CreateTripFragment$StopCursor.smali     MainActivity$PagerAdapter.smali         TripFragment.smali
堆栈跟踪:

舱单:

Go/build.gradle[1]:

build.gradle[1]:

MainActivity.java[2]:

有什么想法吗

[1] 取自最早的一个提交,因为它的依赖性较少,等等,会造成混乱。但是,对于该提交,问题仍然是100%可重复的


[2] 只有声明。

从CLI清理似乎解决了问题

感谢@yogurtearl为我指出了正确的方向

更新 由于运行了上面的gradlew命令,我现在可以在androidstudio中进行清理和构建。因此,Android Studio似乎没有正确清理,手动删除build/和.gradle/目录也不够

现在,我只需要理解为什么这是有效的,为什么Android Studio中的清洁和建筑没有

如果你知道任何其他地方的州gradle/gradlew商店可能是罪魁祸首,我很想通过评论听到

更新2 这个问题一直在我的Mac电脑上发生。我注意到,当我在Android Studio中构建时,“preDexDebug”任务生成了以下几个警告:

objc[49452]: Class JavaLaunchHelper is implemented in both /Library/Java/JavaVirtualMachines/jdk1.8.0_05.jdk/Contents/Home/bin/java and /Library/Java/JavaVirtualMachines/jdk1.8.0_05.jdk/Contents/Home/jre/lib/libinstrument.dylib. One of the two will be used. Which one is undefined.

比较一个好的APK和一个坏的APK,我可以看到一些生成的DEX'd类在两个APK之间有很大的差异。不幸的是,我还不知道该问题的解决方案(我一直在使用CLI中的Gradle包装器进行构建)。

MainActivity的包名确实是
au.com.glassechidna.go.content
?@matiash确实是()。正如我提到的,应用程序在升级到0.8.2之前构建并运行良好。我有很多旧的提交,它们都是在旧版本的Android Studio中编译和测试的,但现在由于相同的运行时异常而失败。它是否可以从命令行使用:./gradlew installApp?@yogurtearl“installApp”不是一个gradle任务,但是你给了我正确的方向,谢谢!现在,我只需要理解我发布的答案“为什么”起作用。对不起,我认为是这样。/gradlew installDebugBug向谷歌报告-我将我的jdk降级为7u25(在引入JavaLaunchHelper bug之前),现在已经解决了这个问题。
objc[49452]: Class JavaLaunchHelper is implemented in both /Library/Java/JavaVirtualMachines/jdk1.8.0_05.jdk/Contents/Home/bin/java and /Library/Java/JavaVirtualMachines/jdk1.8.0_05.jdk/Contents/Home/jre/lib/libinstrument.dylib. One of the two will be used. Which one is undefined.