我不能';更新到java 8后,无法修复某些异常
更新到java 8后,应用程序不会启动。gradle构建工作正常。当我试图在emulator上启动我的应用程序时,它崩溃了,我得到了stacktrace,您可以在下面看到:我不能';更新到java 8后,无法修复某些异常,java,android,android-gradle-plugin,Java,Android,Android Gradle Plugin,更新到java 8后,应用程序不会启动。gradle构建工作正常。当我试图在emulator上启动我的应用程序时,它崩溃了,我得到了stacktrace,您可以在下面看到: ` Process: com.blackmamba.gopgame, PID: 1873 java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.blackmamba.gopgame/com.blackmamba.gop
` Process: com.blackmamba.gopgame, PID: 1873
java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.blackmamba.gopgame/com.blackmamba.gopgame.MainMenu}: java.lang.ClassNotFoundException: Didn't find class "com.blackmamba.gopgame.MainMenu" on path: DexPathList[[zip file "/data/app/com.blackmamba.gopgame-2/base.apk"],nativeLibraryDirectories=[/vendor/lib64, /system/lib64]]
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2209)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2360)
at android.app.ActivityThread.access$800(ActivityThread.java:144)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1278)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5221)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694)
Caused by: java.lang.ClassNotFoundException: Didn't find class "com.blackmamba.gopgame.MainMenu" on path: DexPathList[[zip file "/data/app/com.blackmamba.gopgame-2/base.apk"],nativeLibraryDirectories=[/vendor/lib64, /system/lib64]]
at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)
at java.lang.ClassLoader.loadClass(ClassLoader.java:511)
at java.lang.ClassLoader.loadClass(ClassLoader.java:469)
at android.app.Instrumentation.newActivity(Instrumentation.java:1065)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2199)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2360)
at android.app.ActivityThread.access$800(ActivityThread.java:144)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1278)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5221)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694)
Suppressed: java.lang.ClassNotFoundException: com.blackmamba.gopgame.MainMenu
at java.lang.Class.classForName(Native Method)
at java.lang.BootClassLoader.findClass(ClassLoader.java:781)
at java.lang.BootClassLoader.loadClass(ClassLoader.java:841)
at java.lang.ClassLoader.loadClass(ClassLoader.java:504)
... 13 more
Caused by: java.lang.NoClassDefFoundError: Class not found using the boot class loader; no stack available`
在这里您可以看到build.gradle:
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:1.2.3'
}
}
apply plugin: 'com.android.application'
repositories {
mavenCentral()
mavenLocal()
}
android {
lintOptions {
abortOnError false
}
compileSdkVersion 21
buildToolsVersion "22.0.1"
defaultConfig {
applicationId "com.blackmamba.gopgame"
minSdkVersion 14
targetSdkVersion 21
versionCode 1
versionName "1.0"
}
sourceSets {
main {
manifest.srcFile 'AndroidManifest.xml'
resources.srcDirs = ['src']
res.srcDirs = ['res']
}
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_7
targetCompatibility JavaVersion.VERSION_1_7
}
}
dependencies {
compile 'com.android.support:appcompat-v7:22.1.1'
compile 'com.android.support:support-v13:22.1.1'
}
以及我的AndroidManifest.xml:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.blackmamba.gopgame"
android:versionCode="1"
android:versionName="1.0">
<uses-sdk android:minSdkVersion="14" android:targetSdkVersion="21"/>
<application
android:label="@string/app_name"
android:icon="@drawable/ic_launcher"
android:screenOrientation="portrait">
<activity
android:name="MainMenu"
android:label="@string/app_name"
android:theme="@style/Theme.AppCompat.NoActionBar" >
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
<activity android:name="HeroSelector"
android:theme="@style/Theme.AppCompat.NoActionBar"/>
</application>
</manifest>
项目树->Android不支持Java 8:
Android仍然不支持Java 8,因为Android不使用Java虚拟机,而是使用一个完全独立的名为Dalvik的虚拟机,这就是为什么添加对Java 8的支持需要很长时间和成本,因为它需要从头开始进行更改。change
Android:name=“MainMenu”
使用android:name=“.main menu”
我已经试过了,但是没有用。你能显示你的项目树或main menu
类吗?是的,我已经更新了问题主体。
package com.blackmamba.gopgame;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
public class MainMenu extends Activity {
/**
* Called when the activity is first created.
*/
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Button exitButton = (Button)findViewById(R.id.exit_button);
exitButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
finish();
}
});
Button newGameButton = (Button)findViewById(R.id.new_game_button);
newGameButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(MainMenu.this, HeroSelector.class);
startActivity(intent);
}
});
}
}