[英]Package android.support.v4.app does not exist
在我的 Qt Android(5.6+,最新的 SDK 和 NDK 10d)應用程序中,由於 targetApi 26,我需要在運行時請求權限。 從 Google 文檔中我發現我必須做這樣的事情:
import android.Manifest.permission;
import android.support.v4.app.ActivityCompat;
import android.support.v7.app.AppCompatActivity;
public class MyActivity extends QtActivity implements ActivityCompat.OnRequestPermissionsResultCallback
{
private static final String[] LOCATION_PERMS = {
permission.ACCESS_FINE_LOCATION
};
private static final int LOCATION_REQUEST = 1337;
private boolean hasPermission(String perm)
{
return (PackageManager.PERMISSION_GRANTED == checkSelfPermission(perm));
}
public boolean canAccessLocation()
{
return hasPermission(permission.ACCESS_FINE_LOCATION);
}
@Override
public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults)
{
//Figure out what was given to us
switch(requestCode)
{
case LOCATION_REQUEST:
if (canAccessLocation())
Log.i(TAG, "Access to location is granted");
else {
Log.e(TAG, "Access to location is denied");
finish();
}
break;
}
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
//Ensure we can run the app
if (!canAccessLocation())
requestPermissions( LOCATION_PERMS, LOCATION_REQUEST );
}
}
}
我還安裝了 Android Support Repository:
這是我的 build.gradle:
buildscript {
repositories {
jcenter()
google()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.1.0'
}
}
allprojects {
repositories {
jcenter()
google()
}
}
apply plugin: 'com.android.application'
dependencies {
compile "com.android.support:support-v4:27.0.2"
compile "com.android.support:support-v13:27.0.2"
compile fileTree(dir: 'libs', include: ['*.jar'])
}
但我收到錯誤: package android.support.v4.app does not exist 。 我還嘗試在我的工作站上找到 android-support-v4.jar,但沒有成功。 添加
compile 'com.android.support:support-v4:+'
從這里開始沒有任何區別。
一件重要的事情:我的項目是在 CMake 的幫助下從命令行構建的,我不能使用任何 IDE,如 Android Studio 或 Eclipse。 我錯過了什么?
謝謝!
我不知道你是否還有這個問題,但如果有人想知道......
我將編譯 sdk 版本更改為:27: Android 8.1 (Oreo)為26: Android 8.0 (Oreo) 並在build.grade
dependencies {
implementation 'com.android.support:appcompat-v7:27.0.0'
implementation 'com.android.support:design:27.0.0'
implementation 'com.android.support:support-v4:27.1.1'
}
顯然 android.support:support 中的 27.1.1 成功了(27.0.0 不起作用)。 我希望這有幫助 (:
實際上,通過應用來自 Android Studio 的依賴項,更新的build.gradle
可以使用這些設置:
apply plugin: 'com.android.application'
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:25.0.1'
compile 'com.android.support:design:25.0.1'
}
我也猜你需要導入活動:
import android.app.Activity;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.