Android 未包含在APK中的Kotlin活动

Android 未包含在APK中的Kotlin活动,android,kotlin,Android,Kotlin,我将我的第一个Kotlin代码(一个新的活动)引入到一个已建立的Android应用程序中。使用Android Studio 2.3.3、Gradle 3.3。我能够构建和运行应用程序,但在启动新的Kotlin活动时,应用程序崩溃,出现“未找到类”异常。分析APK表明Kotlin类未包含在dex中(其多个dex已检查两个dex文件) build.gradle(项目) build.gradle(应用程序模块) 活动非常简单: class HyperFlashActivity : AppCompatA

我将我的第一个Kotlin代码(一个新的活动)引入到一个已建立的Android应用程序中。使用Android Studio 2.3.3、Gradle 3.3。我能够构建和运行应用程序,但在启动新的Kotlin活动时,应用程序崩溃,出现“未找到类”异常。分析APK表明Kotlin类未包含在dex中(其多个dex已检查两个dex文件)

build.gradle(项目)

build.gradle(应用程序模块)

活动非常简单:

class HyperFlashActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
         super.onCreate(savedInstanceState)
         setContentView(hyperflash_activity_layout)
    }
}
以及发射代码:

public static void launchHyperflashActivity(Activity launchingActivity) {
    Intent intent = new Intent(launchingActivity, HyperFlashActivity.class);
    intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
    launchingActivity.startActivity(intent);
    launchingActivity.overridePendingTransition(R.anim.slide_in_right, R.anim.slide_out_left);
}
我曾经有过同样的问题1,基本上修复方法是代替Android Studio 2.x下载。即使在使用2.x版本时代码高亮显示确实起作用,这也可以解决您的问题

当您查看New Features选项卡时,您可以看到它显示了以前缺少的功能(我认为在本例中,它只是内置到Android Studio中,并专门针对Android Studio的需求进行了增强(例如将类包含到dex文件中))

1:除了multidex,因为我不需要它

我曾经有过同样的问题1,基本上修复方法是代替Android Studio 2.x下载。即使在使用2.x版本时代码高亮显示确实起作用,这也可以解决您的问题

当您查看New Features选项卡时,您可以看到它显示了以前缺少的功能(我认为在本例中,它只是内置到Android Studio中,并专门针对Android Studio的需求进行了增强(例如将类包含到dex文件中))


1:除了我不需要的multidex之外

你记得把
HyperFlashActivity
放在
AndroidManifest.xml
中吗?并将
android:name=“android.support.multidex.MultiDexApplication”
添加到清单中吗?清单中明确声明了HyperFlashActivity。我们在application.AttachBaseContext中使用MultiDex.install(this)。您是否记得将
HyperFlashActivity
放入
AndroidManifest.xml
?并将
android:name=“android.support.MultiDex.MultiDexApplication”
添加到清单中?清单中明确声明了HyperFlashActivity。我们在application.attachBaseContextYes中使用MultiDex.install(这)是的,这解决了问题(连同助理升级到gradle/gradle包装器4.4)是的,这解决了问题(连同助理升级到gradle/gradle包装器4.4)
class HyperFlashActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
         super.onCreate(savedInstanceState)
         setContentView(hyperflash_activity_layout)
    }
}
public static void launchHyperflashActivity(Activity launchingActivity) {
    Intent intent = new Intent(launchingActivity, HyperFlashActivity.class);
    intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
    launchingActivity.startActivity(intent);
    launchingActivity.overridePendingTransition(R.anim.slide_in_right, R.anim.slide_out_left);
}