尝试获取 activity 上下文时出错
Error when trying to get activity context
出于某种原因,我无法获取 activity 的上下文。 注意 - 它之前可以正常工作,但现在 Android Studio 显示错误但不会停止我的应用程序编译,并且 运行 如预期的那样。我已经进一步添加了我的代码,但最终我认为问题出在其他地方,因为如果我尝试在新的空 activity 中获取 activity 上下文,我会收到错误消息。
package com.example.myapp
public class TestActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_test);
Context context = this; // Error here
}
}
错误是:
Incompatible types.
Required: android.content.Context
Found: com.example.myapp.TestActivity
这个错误只发生在这个项目上。我对答案的搜索没有产生积极的结果。事实上,我找不到任何关于我面临的确切问题的信息。
我试图解决这个问题:
this
而不是 MainActivity.this
- 与上述相同的错误
getApplicationContext()
- 无法解决方法错误
getActivity().getApplicationContext()
- 与#2 相同的错误
- 清理并重建项目/将项目与 Gradle 文件同步
- 正在重新启动 Android Studio
- Android Studio 版本 2.3.3 和 3.0 - 相同问题
我是 Android 开发的新手,所以如果您有适合我的解决方案,请尽可能简单地表述。提前致谢。这是我的代码 - 我在 onClick
方法中收到错误 MainActivity.this
:
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// Find the View that shows the Numbers category
TextView numbers = (TextView) findViewById(R.id.numbers);
// If View is present, set a click listener on that View
if(numbers != null) {
numbers.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent numbersIntent = new Intent(MainActivity.this, NumbersActivity.class);
startActivity(numbersIntent);
}
});
}
}
}
我找到了一个解决方案,那就是将 google()
添加到我项目的 build.gradle 文件中,如下所示:
allprojects {
repositories {
jcenter()
google()
}
}
我还删除了该项目并再次克隆它,以便它可以从头开始构建。不确定是否有帮助。
出于某种原因,我无法获取 activity 的上下文。 注意 - 它之前可以正常工作,但现在 Android Studio 显示错误但不会停止我的应用程序编译,并且 运行 如预期的那样。我已经进一步添加了我的代码,但最终我认为问题出在其他地方,因为如果我尝试在新的空 activity 中获取 activity 上下文,我会收到错误消息。
package com.example.myapp
public class TestActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_test);
Context context = this; // Error here
}
}
错误是:
Incompatible types.
Required: android.content.Context
Found: com.example.myapp.TestActivity
这个错误只发生在这个项目上。我对答案的搜索没有产生积极的结果。事实上,我找不到任何关于我面临的确切问题的信息。 我试图解决这个问题:
this
而不是MainActivity.this
- 与上述相同的错误getApplicationContext()
- 无法解决方法错误getActivity().getApplicationContext()
- 与#2 相同的错误
- 清理并重建项目/将项目与 Gradle 文件同步
- 正在重新启动 Android Studio
- Android Studio 版本 2.3.3 和 3.0 - 相同问题
我是 Android 开发的新手,所以如果您有适合我的解决方案,请尽可能简单地表述。提前致谢。这是我的代码 - 我在 onClick
方法中收到错误 MainActivity.this
:
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// Find the View that shows the Numbers category
TextView numbers = (TextView) findViewById(R.id.numbers);
// If View is present, set a click listener on that View
if(numbers != null) {
numbers.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent numbersIntent = new Intent(MainActivity.this, NumbersActivity.class);
startActivity(numbersIntent);
}
});
}
}
}
我找到了一个解决方案,那就是将 google()
添加到我项目的 build.gradle 文件中,如下所示:
allprojects {
repositories {
jcenter()
google()
}
}
我还删除了该项目并再次克隆它,以便它可以从头开始构建。不确定是否有帮助。