Java 升级的Android Studio。。。现在,当我尝试运行我的应用程序时,我得到了;“未找到任何实现”;我的主要活动

Java 升级的Android Studio。。。现在,当我尝试运行我的应用程序时,我得到了;“未找到任何实现”;我的主要活动,java,android,android-studio,Java,Android,Android Studio,升级的Android studio(愚蠢,对吧?)。现在,我不仅不能点击alt-E、C进行复制,而且我需要支持的一些旧应用程序也不再运行。这些应用程序是与AndroidStudio 1.x整合在一起的 首先,当我试图编译时,它要求我在proguard规则中加入“-keepattributes innerClass”。只是把它包括在内,以防万一这是某种暗示 该程序编译得很好,但随后会立即运行并退出。看着Logcat,我看到了: 2021-03-18 22:02:34.960 6147-6147/c

升级的Android studio(愚蠢,对吧?)。现在,我不仅不能点击alt-E、C进行复制,而且我需要支持的一些旧应用程序也不再运行。这些应用程序是与AndroidStudio 1.x整合在一起的

首先,当我试图编译时,它要求我在proguard规则中加入“-keepattributes innerClass”。只是把它包括在内,以防万一这是某种暗示

该程序编译得很好,但随后会立即运行并退出。看着Logcat,我看到了:

2021-03-18 22:02:34.960 6147-6147/com.mycompany.myapp E/ycompany.myapp: No implementation found for java.lang.String com.mycompany.myapp.myappActivity.d() (tried Java_com_mycompany_myapp_myappActivity_d and Java_com_mycompany_myapp_myappActivity_d__)

但奇怪的是。。。在myactivity onCreate中,我输出一行文本。它到达那里。这种情况经常发生。它打印出“>>>>>创建的应用程序自ASs 1.x以来发生了很多变化,尤其是使用gradle/android gradle插件。即使在进行了一些小的更新之后,这些都非常挑剔。然而,您或多或少地被迫更新到一个更新的(不一定是最新的)IDE版本。 找不到java.lang.String表明存在一些主要的不兼容问题

首先,您应该检查您的JDK版本(并确保您拥有完整的工具包,而不仅仅是JRE)。并非所有的IDE版本都能与所有JDK一起工作,并且再次使用旧版本(10、12),而不是绝对的最新版本,因为最新版本可能不受支持(而且android也不支持较新的java功能)。我使用JDK 12和Ass 3.6.1。 还要检查您正在使用的gradle版本,因为gradle也有不兼容的地方。请记住还要检查JAVA_HOME和gradle_HOME环境变量的内容(如果它们存在并由您的项目使用),因为它们可能会覆盖所使用的构建工具版本

你最安全的方法是创建一个新的空项目,并复制其中的所有源代码。这可能比清理现有项目、迁移插件、gradle等花费的时间要少

在修复项目设置之前,您可以禁用proguard,通过设置
minifyEnabled false

在你的应用程序/build.gradle#buildTypes#release中。请注意,proguard通常在调试版本中被禁用。

你尝试了什么?什么不起作用?请在你的问题中添加代码。我对此进行了升级,但尚未将其标记为解决方案。禁用minify确实有效…但发布版本会给我同样的问题。为什么它会缩小我的主要行为ivity?也明白这一点:我创建了一个新的空项目,把所有的东西都放进去——它成功了。因为这个项目在SVN中,我能够一步一步地检查并还原基本上所有的东西,看看它什么时候会坏。但它从来没有坏过。创建一个新项目,然后将所有的文件还原回原来的状态,使它工作起来。解释一下我会给你一个绿色的复选标记!proguard不会缩小活动,因为这会破坏应用程序;它可能缩小了一些用于访问JDK类的包装类,如String。android工具链已经发生了很大变化(特别是在从dalvik过渡到ART之后)从早期开始,这也影响了类的链接方式。Proguard使用了一组在/tools/Proguard/Proguard-android.txt中定义的内置规则,这些规则可能在项目创建后发生了更改。此外,build.gradle似乎不是版本控制的一部分,因此gradle插件版本不会因还原而更改。