我目前正在使用 AIDE 做缺乏计算机,并且我在使用几个类时遇到了问题,我很确定这与 androidx 库和 AIDE 有关,我看到其他人也有类似的问题在这里,无法访问 'androidx.activity.result.ActivityResultCaller',仅对我来说,我得到 ActivityResult、ActivityResultCallback、ActivityResultContract、ActivityResultLauncher、ActivityCompat 和来自所述类的一些方法以及 ActivityResultCaller 接口的“未知实体”,以及那个人的问题的解决方案对我不起作用,任何建议,这是我的 build.gradle 和 MainActivity,我有一些东西被注释掉了,我一直在搞乱依赖关系
apply plugin: 'com.android.application'
android {
compileSdkVersion 30
buildToolsVersion "30.0.2"
defaultConfig {
applicationId "com.mycompany.MyApp"
minSdkVersion 30
targetSdkVersion 30
versionCode 1
versionName "1.0"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
implementation ('android.arch.core:runtime:+') {
force = true
}
implementation 'androidx.activity:activity:1.4.0'
//implementation 'com.android.support:support-v4:23.+'
//implementation 'com.android.support:appcompat-v7:22.1.0'
implementation 'com.android.support:appcompat-v7:27.+'
//implementation 'androidx.appcompat:appcompat:1.2.0'
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation "androidx.core:core-ktx:1.3.1"
implementation 'androidx.appcompat:appcompat:1.3.0-alpha01'
}
这是 MainActivity
package com.mycompany.MyApp;
import android.app.*;
import android.os.*;
import android.view.Window;
import android.view.WindowManager;
import android.support.v4.content.*;
import android.content.Context;
import androidx.activity.*;
import android.provider.*;
//import androidx.core.app.*;
import android.content.Intent;
import android.net.Uri;
import android.content.pm.*;
//import androidx.activity.result.contract.*;
//import androidx.activity.*;
import android.provider.*;
import java.security.*;
import android.support.v4.content.ContextCompat;
import android.support.v7.app.*;
public class MainActivity extends AppCompatActivity{
public static String PACKAGE_NAME;
String[] permissions = {android.Manifest.permission.READ_EXTERNAL_STORAGE, android.Manifest.permission.WRITE_EXTERNAL_STORAGE};
public static MainActivity instance;
public ActivityResultLauncher<Intent> activityResultLauncher;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
activityResultLauncher =
registerForActivityResult(new ActivityResultContracts.StartActivityForResult(), new ActivityResultCallback<ActivityResult>(){
@Override
public void onActivityResult(ActivityResult result){
}
});
setContentView( new Game(this));
PACKAGE_NAME = getApplicationContext().getPackageName();
}
private boolean checkPermission(){
if (Build.VERSION.SDK_INT >= 23) {
if (ActivityCompat.checkSelfPermission(requireContext(), permissions) != PackageManager.PERMISSION_GRANTED) {
getPermission.launch(permissions);
}
}
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.R){
return Environment.isExternalStorageManager();
}
else{
int checkRead = ContextCompat.checkSelfPermission(getApplicationContext(), android.Manifest.permission.READ_EXTERNAL_STORAGE);
int checkWrite = ContextCompat.checkSelfPermission(getApplicationContext(), android.Manifest.permission.WRITE_EXTERNAL_STORAGE);
return checkRead == PackageManager.PERMISSION_GRANTED && checkWrite == PackageManager.PERMISSION_GRANTED;
}
}
@Override
public void startActivityForResult(Intent intent, int requestCode)
{
super.startActivityForResult(intent, requestCode);
}
/
private ActivityResultLauncher<Intent> requestPermissionLauncher =
registerForActivityResult( new ActivityResultContracts.StartActivityForResult(), new ActivityResultCallback<ActivityResult>(){
@Override
public void onActivityResult(ActivityResult result){
}
});
public void requestPermissions(){
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.R){
try{
Intent intent = new Intent(Settings.ACTION_MANAGE_ALL_FILES_ACCESS_PERMISSION);
intent.addCategory("android.intent.category.DEFAULT");
intent.setData(Uri.parse(String.format("package:%s", new Object[]{PACKAGE_NAME})));
requestPermissionLauncher.launch(intent);
}catch(Exception e){
Intent intent = new Intent();
intent.setAction(Settings.ACTION_MANAGE_ALL_FILES_ACCESS_PERMISSION);
activityResultLauncher.launch(intent);
}
}
else{
ActivityCompat.requestPermissions(this, permissions, 30);
}
}
}