Android即使安装了ActivityCompat方法,也找不到它

时间:2017-01-23 01:40:46

标签: android eclipse android-support-library android-appcompat

在我的应用中,我使用Android 6特定的相机访问请求。它曾经工作正常,直到我的硬盘驱动器死了,我不得不重置eclipse / android。

现在我收到了这些错误

The method requestPermissions(MainActivity, String[], int) is undefined for the type ActivityCompat
The method checkSelfPermission(MainActivity, String) is undefined for the type ContextCompat
The method shouldShowRequestPermissionRationale(MainActivity, String) is undefined for the type ActivityCompat

即使ActivityCompat被识别,我尝试编译时也是如此。我从SDK管理器下载了Android支持存储库,但仍然在svn的依赖项中有android-support-v4.jar,但它似乎不起作用。

到目前为止,我发现的所有解决方案都指向将库作为来自sdk源的库项目,然后在依赖项中使用该jar文件,但该文件夹在我的sdk文件夹结构中不存在

<sdk>\extras\android\support

我有以下文件夹:

<sdk>\extras\android\m2repository\com\android\support

但它不包括任何要包含在eclipse中的库项目。

如何获取这些来源以便我可以将支持库导入 eclipse 并从我的项目中引用它?

编辑:

以下是导致错误的代码:

if (ContextCompat.checkSelfPermission(GalleryActivity.this, Manifest.permission.CAMERA) != PackageManager.PERMISSION_GRANTED) {

    if (ActivityCompat.shouldShowRequestPermissionRationale(GalleryActivity.this, Manifest.permission.CAMERA)) {
        ActivityCompat.requestPermissions(GalleryActivity.this, new String[]{Manifest.permission.CAMERA}, MainActivity.REQUEST_ALLOW_ACCESS_CAMERA_IMPORT);
    } else { 
        ActivityCompat.requestPermissions(GalleryActivity.this, new String[]{Manifest.permission.CAMERA}, MainActivity.REQUEST_ALLOW_ACCESS_CAMERA_IMPORT);
    }

} else {
    onTakeNewPhoto();
}

清单中的sdk级别如下所示:

<uses-sdk
    android:minSdkVersion="14"
    android:targetSdkVersion="23" />

我的project.properties文件

proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt
target=android-23
android.library.reference.1=Licensing

1 个答案:

答案 0 :(得分:0)

您应该将Android Sdk Tools,Android平台工具和Android Sdk内置工具更新到最新版本

然后首先尝试将现有的android项目导入您的工作区,路径为:

require('./js/controllers/todoCtrl')

然后将上面的项目设置为库项目。最后添加该项目作为对主项目的引用