我正在使用 Android Studio,并在我的应用程序的依赖项中尝试添加 testCompile 依赖项,如下所示:http://www.gradle.org/docs/current/userguide/artifact_dependency_tutorial.html 当我同步文件时,出现错误: 我不明白发生了什么,我的根文件夹中的 gradle 构建文件设置为
classpath 'com.android.tools.build:gradle:0.12.+'
,这是最新版本。为什么它不识别 testCompile?我不想将测试依赖项部署到生产中...任何帮助将不胜感激。
编辑:这是项目构建文件
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:0.12.+'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
allprojects {
repositories {
jcenter()
}
}
这是 src 构建文件:
apply plugin: 'com.android.application'
android {
compileSdkVersion 17
buildToolsVersion "20.0.0"
defaultConfig {
applicationId "com.example.edu.myApp"
minSdkVersion 14
targetSdkVersion 19
versionCode 1
versionName "1.0"
}
buildTypes {
release {
runProguard false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
debug{
runProguard false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile files('libs/scribe-1.3.5.jar')
compile files('libs/json_simple-1.1.jar')
compile 'com.google.android.gms:play-services:5.0.77'
// Can't be higher than 19 if we want to support smaller android versions
compile 'com.android.support:appcompat-v7:19.+'
// You must install or update the Support Repository through the SDK manager to use this dependency.
compile 'com.android.support:support-v4:19.+'
// This Mockito includes all dependancies (great for us)
testCompile "org.mockito:mockito-core:1.9.+"
testCompile 'org.hamcrest:hamcrest-all:1.3'
testCompile 'org.objenesis:objenesis:1.2'
}
您应该使用
androidTestCompile
,而不是 testCompile
。如果这是由于通过“项目结构”对话框修改依赖关系范围造成的,则存在一个错误,即它使用错误的语句来设置依赖关系。我已为此提交了 https://code.google.com/p/android/issues/detail?id=74771。
一年后我偶然发现了这篇文章。我遇到这个问题是因为我继承了一个旧项目,该项目在 Gradle 构建文件中使用了过时的 Gradle 构建工具设置。我通过更新 Gradle 构建工具解决了这个问题,显然您需要通过增加 Gradle 构建文件中的版本号来完成此操作:
dependencies {
classpath 'com.android.tools.build:gradle:1.X.X'
}
其中 X.X 是最新的 gradle 构建工具版本号。现在我正在使用 Android Studio v1.2,并且我已将构建工具版本号设置为:
dependencies {
classpath 'com.android.tools.build:gradle:1.2.2'
}
我在尝试实现单元测试时遇到了这个问题,这些测试现在显然已内置于 Android Studio 中。
希望这可以帮助有同样问题的人。
我也收到了“找不到方法'testcompile()'”错误。问题是我的项目 build.gradle 文件中有 testCompile 'junit:junit:4.12' 而不是 app build.gradle 文件。我怎么知道它在错误的文件中?项目文件仅声明“注意:不要将应用程序依赖项放在这里;它们属于各个模块 build.gradle 文件”。这么简单的答案难怪我找不到。
我有一个图书馆项目。我相信 Android 文档,并将
testCompile
语句放在我的顶级 build.gradle
文件中。事实证明它实际上必须进入我的模块build.gradle
文件中。
package com.example.listview;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.Toast;
import java.util.ArrayList;
public class MainActivity extends AppCompatActivity {
ArrayList<String> arrnames=new ArrayList<>();
ListView Listview;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Listview=findViewById(R.id.listview);
arrnames.add("jua");
arrnames.add("sbalena");
arrnames.add("roose");
arrnames.add("saa");
arrnames.add("linda");
arrnames.add("lee");
ArrayAdapter<String> adapter=new ArrayAdapter<>(MainActivity.this,android.R.layout.simple_list_item_1,arrnames);
Listview.setAdapter(adapter);
Listview.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
if(position==0){
Toast.makeText(MainActivity.this, "Item 1 selected", Toast.LENGTH_SHORT).show();
} else if (position==1) {
Toast.makeText(MainActivity.this, "Item 2 selected", Toast.LENGTH_SHORT).show();
}
}
});
}
}