无法导入 ActivityChooserModel
Unable to import ActivityChooserModel
出于某种原因,我无法访问 Android activity 中的 ActivityChooserModel
class。我正在尝试按如下方式访问它:
ActivityChooserModel dataModel = ActivityChooserModel.get(this, ShareActionProvider.DEFAULT_SHARE_HISTORY_FILE_NAME);
但是当我尝试构建项目时,我得到以下信息:
cannot find symbol class ActivityChooserModel
我尝试使用以下两个导入,但都不起作用:
import android.widget.ActivityChooserModel;
import android.support.v7.internal.widget.ActivityChooserModel;
这尤其令人沮丧,因为在 Android Studio 中我可以打开 ActivityChooserModel.java
,并且我可以看到它是 public class。我的 activity 正在使用 ShareActionProvider
并毫无问题地导入它,当我浏览 SDK 源代码时,我可以清楚地看到 class 和 ActivityChooserModel
所以我没有知道为什么我无法访问它。
这是我的 build.gradle
的片段,虽然我不确定是否相关:
android {
compileSdkVersion 22
buildToolsVersion '22.0.1'
defaultConfig {
minSdkVersion 16
targetSdkVersion 22
}
}
非常感谢!
这是为我编译的:
import android.support.v7.internal.widget.ActivityChooserModel;
import android.support.v7.widget.ShareActionProvider;
public class MainActivity extends AppCompatActivity{
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ActivityChooserModel dataModel = ActivityChooserModel.get(this, ShareActionProvider.DEFAULT_SHARE_HISTORY_FILE_NAME);
}
build.gradle:
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile "com.android.support:appcompat-v7:22.1.1"
}
已接受的答案对我有用,但我必须在我的项目中包含 appcompat-v7
才能这样做,这是一个相当大的库。虽然非常 hacky,但我发现了另一种使用反射的方法:
Class<?> activityChooserModel = Class.forName("android.widget.ActivityChooserModel");
Method activityChooserGetMethod = activityChooserModel.getMethod("get", Context.class, String.class);
Object activityChooserObject = activityChooserGetMethod.invoke(null, this, ShareActionProvider.DEFAULT_SHARE_HISTORY_FILE_NAME);
如果您不介意包括在内,接受的答案可能会更好appcompat-v7
,但我也只想添加这个
出于某种原因,我无法访问 Android activity 中的 ActivityChooserModel
class。我正在尝试按如下方式访问它:
ActivityChooserModel dataModel = ActivityChooserModel.get(this, ShareActionProvider.DEFAULT_SHARE_HISTORY_FILE_NAME);
但是当我尝试构建项目时,我得到以下信息:
cannot find symbol class ActivityChooserModel
我尝试使用以下两个导入,但都不起作用:
import android.widget.ActivityChooserModel;
import android.support.v7.internal.widget.ActivityChooserModel;
这尤其令人沮丧,因为在 Android Studio 中我可以打开 ActivityChooserModel.java
,并且我可以看到它是 public class。我的 activity 正在使用 ShareActionProvider
并毫无问题地导入它,当我浏览 SDK 源代码时,我可以清楚地看到 class 和 ActivityChooserModel
所以我没有知道为什么我无法访问它。
这是我的 build.gradle
的片段,虽然我不确定是否相关:
android {
compileSdkVersion 22
buildToolsVersion '22.0.1'
defaultConfig {
minSdkVersion 16
targetSdkVersion 22
}
}
非常感谢!
这是为我编译的:
import android.support.v7.internal.widget.ActivityChooserModel;
import android.support.v7.widget.ShareActionProvider;
public class MainActivity extends AppCompatActivity{
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ActivityChooserModel dataModel = ActivityChooserModel.get(this, ShareActionProvider.DEFAULT_SHARE_HISTORY_FILE_NAME);
}
build.gradle:
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile "com.android.support:appcompat-v7:22.1.1"
}
已接受的答案对我有用,但我必须在我的项目中包含 appcompat-v7
才能这样做,这是一个相当大的库。虽然非常 hacky,但我发现了另一种使用反射的方法:
Class<?> activityChooserModel = Class.forName("android.widget.ActivityChooserModel");
Method activityChooserGetMethod = activityChooserModel.getMethod("get", Context.class, String.class);
Object activityChooserObject = activityChooserGetMethod.invoke(null, this, ShareActionProvider.DEFAULT_SHARE_HISTORY_FILE_NAME);
如果您不介意包括在内,接受的答案可能会更好appcompat-v7
,但我也只想添加这个