Java 获得;应用程序:preDexDebug“;添加特定jar时出错
最近我试图用android studio代替eclipse,但有一件事我无法解决 当我试图将下面的类作为jar导入时,会出现以下错误 班级:Java 获得;应用程序:preDexDebug“;添加特定jar时出错,java,android,jar,android-studio,android-gradle-plugin,Java,Android,Jar,Android Studio,Android Gradle Plugin,最近我试图用android studio代替eclipse,但有一件事我无法解决 当我试图将下面的类作为jar导入时,会出现以下错误 班级: import java.io.IOException; import java.util.HashMap; import java.util.Iterator; import java.util.List; import com.google.api.client.googleapis.json.GoogleJsonResponseException;
import java.io.IOException;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import com.google.api.client.googleapis.json.GoogleJsonResponseException;
import com.google.api.client.http.HttpRequest;
import com.google.api.client.http.HttpRequestInitializer;
import com.google.api.services.youtube.YouTube;
import com.google.api.services.youtube.model.ResourceId;
import com.google.api.services.youtube.model.SearchListResponse;
import com.google.api.services.youtube.model.SearchResult;
public class Search {
private static final long NUMBER_OF_VIDEOS_RETURNED = 25;
private static YouTube youtube;
public static void main(String args[]){
}
public static HashMap<String, String> search(String queryTerm, String apiKey) {
try {
youtube = new YouTube.Builder(Auth.HTTP_TRANSPORT, Auth.JSON_FACTORY, new HttpRequestInitializer() {
public void initialize(HttpRequest request) throws IOException {
}
}).setApplicationName("youtube-cmdline-search-sample").build();
YouTube.Search.List search = youtube.search().list("id,snippet");
search.setKey(apiKey);
search.setQ(queryTerm);
search.setType("video");
search.setFields("items(id/kind,id/videoId,snippet/title,snippet/thumbnails/default/url)");
search.setMaxResults(NUMBER_OF_VIDEOS_RETURNED);
SearchListResponse searchResponse = search.execute();
List<SearchResult> searchResultList = searchResponse.getItems();
if (searchResultList != null) {
return prettyPrint(searchResultList.iterator(), queryTerm);
}
} catch (GoogleJsonResponseException e) {
System.err.println("There was a service error: " + e.getDetails().getCode() + " : "
+ e.getDetails().getMessage());
} catch (IOException e) {
System.err.println("There was an IO error: " + e.getCause() + " : " + e.getMessage());
} catch (Throwable t) {
t.printStackTrace();
}
return null;
}
private static HashMap<String, String> prettyPrint(Iterator<SearchResult> iteratorSearchResults, String query) {
HashMap<String, String> m = new HashMap<String, String>();
if (!iteratorSearchResults.hasNext()) {
System.out.println(" There aren't any results for your query.");
}
while (iteratorSearchResults.hasNext()) {
SearchResult singleVideo = iteratorSearchResults.next();
ResourceId rId = singleVideo.getId();
if (rId.getKind().equals("youtube#video")) {
//Thumbnail thumbnail = singleVideo.getSnippet().getThumbnails().getDefault(); image url
m.put(singleVideo.getSnippet().getTitle() ,rId.getVideoId());
}
}
return m;
}
}
堆栈跟踪:
FAILURE: Build failed with an exception.
* What went wrong:
Task 'compileDebug' is ambiguous in root project 'PROJECT_NAME'. Candidates are: 'compileDebugAidl', 'compileDebugAndroidT
estAidl', 'compileDebugAndroidTestJava', 'compileDebugAndroidTestNdk', 'compileDebugAndroidTestRenderscript', 'compileDebugAndr
oidTestSources', 'compileDebugJava', 'compileDebugNdk', 'compileDebugRenderscript', 'compileDebugSources', 'compileDebugUnitTes
tJava', 'compileDebugUnitTestSources'.
* Try:
Run gradlew tasks to get a list of available tasks. Run with --info or --debug option to get more log output.
现在,我尝试运行stacktrace和debug,但没有告诉我这个特定jar导致错误的原因。当我从lib文件夹和gradle中移除jar并导入其他jar时,它们工作正常
我试图将jar导入到一个新项目中,并将该项目导出到新jar中,但即使在这之后,它仍然会给我同样的错误可能您的一些jar文件无法编译。检查你的gradle文件。您必须检查是否再次导入相同的JAR。确保AndroidManifest文件在清单节点中包含包名。寻找其他可能的解决方案。1)看起来像纯Java代码。Android不使用
main
函数或System.out
流。只提取search
方法,这可能是您唯一需要的方法。2) 也许您应该使用Java1.7.0SDK来编译。Android不支持Java 8。任务“CompiledBug”在根项目中不明确
您只能将Android应用程序与Android库混合使用。在这个库模块的顶部可能有类似于apply-plugin:'java'
,您必须将其替换为apply-plugin:'com.android.library'
+更多。
FAILURE: Build failed with an exception.
* What went wrong:
Task 'compileDebug' is ambiguous in root project 'PROJECT_NAME'. Candidates are: 'compileDebugAidl', 'compileDebugAndroidT
estAidl', 'compileDebugAndroidTestJava', 'compileDebugAndroidTestNdk', 'compileDebugAndroidTestRenderscript', 'compileDebugAndr
oidTestSources', 'compileDebugJava', 'compileDebugNdk', 'compileDebugRenderscript', 'compileDebugSources', 'compileDebugUnitTes
tJava', 'compileDebugUnitTestSources'.
* Try:
Run gradlew tasks to get a list of available tasks. Run with --info or --debug option to get more log output.