Java 使用m2e android时必须重写超类方法错误
我把一个旧的android项目带回现场,我决定使用maven m2e android,经过一些修改后工作得很好。我仍然面临的一个问题是,我必须重写超类方法错误,例如在以下代码中:Java 使用m2e android时必须重写超类方法错误,java,android,eclipse,maven,m2e,Java,Android,Eclipse,Maven,M2e,我把一个旧的android项目带回现场,我决定使用maven m2e android,经过一些修改后工作得很好。我仍然面临的一个问题是,我必须重写超类方法错误,例如在以下代码中: new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { dialog.dismiss(); act.finish(
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
act.finish();
}
}
当然,我浏览了一下,发现:
但这一条没有提到maven
我知道您可以在pom.xml中的maven中指定源和目标级别,如下所示:
<configuration>
<source>${java.version}</source>
<target>${java.version}</target>
</configuration>
在正常的、非android的项目中效果很好。但它似乎对我的android项目没有任何影响。我也尝试更新我的maven项目,java编译器也自动设置为1.6
以下是我的pom.xml供参考:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com..bee</groupId>
<artifactId>client</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>apk</packaging>
<name>client</name>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<java.version>1.6</java.version>
<platform.version>4.1.1.4</platform.version>
<android.plugin.version>3.9.0-rc.2</android.plugin.version>
</properties>
<dependencies>
<dependency>
<groupId>com.google.android</groupId>
<artifactId>android</artifactId>
<version>${platform.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
...
</dependency>
</dependencies>
<build>
<finalName>${project.artifactId}</finalName>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.3.2</version>
<configuration>
<source>${java.version}</source>
<target>${java.version}</target>
</configuration>
</plugin>
<plugin>
<groupId>com.jayway.maven.plugins.android.generation2</groupId>
<artifactId>android-maven-plugin</artifactId>
<version>${android.plugin.version}</version>
<extensions>true</extensions>
</plugin>
<plugin>
<groupId>org.eclipse.m2e</groupId>
<artifactId>lifecycle-mapping</artifactId>
<version>1.0.0</version>
<configuration>
<lifecycleMappingMetadata>
<pluginExecutions>
<pluginExecution>
<pluginExecutionFilter>
<groupId>com.jayway.maven.plugins.android.generation2</groupId>
<artifactId>android-maven-plugin</artifactId>
<versionRange>[3.8.0,)</versionRange>
<goals>
<goal>consume-aar</goal>
</goals>
</pluginExecutionFilter>
<action>
<ignore />
</action>
</pluginExecution>
</pluginExecutions>
</lifecycleMappingMetadata>
</configuration>
</plugin>
</plugins>
</pluginManagement>
<plugins>
<plugin>
<groupId>com.jayway.maven.plugins.android.generation2</groupId>
<artifactId>android-maven-plugin</artifactId>
<configuration>
<sdk>
<platform>16</platform>
</sdk>
</configuration>
</plugin>
</plugins>
</build>
</project>
我怀疑我错过了一件小事。如何在不删除@override注释的情况下摆脱“必须重写超类”方法?一个新的早晨一个全新的心态:- 我向AndroidManifest.xml添加了一个空间并保存了该文件。这触发了某种缓存清理或EclipseAndroid设置重置,所有这些都必须重写一个超类方法
我的eclipse/android/maven似乎处于无效状态。您的匿名类中是否缺少分号?@Jason nope,在不使用maven.hmm时,代码编译和运行没有任何问题,如果您使用的是eclipse highlight DialogInterface,请按f3,并在Package explorer中检查它指向的jar。可能是Android的旧版本,但还没有覆盖的方法?这就是我所能想到的。@Jason,谢谢你的帮助,但是我到处都能看到这个错误,这是因为java1.5在实现接口函数时不支持重写,而1.6支持重写。有关详细信息,请参阅我提供的链接。