Android - 扩展应用程序类时无法访问landroid / app / instrumentation

时间:2012-01-31 05:41:47

标签: java android

我慢慢地想要学习android,但我遇到了一个我无法弄清楚的挂断。我正在尝试使用一些全局变量。我已经扩展了Application类。我已经添加了我认为正确的清单(该类的名称是Fortune Crunch):

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.marctremblay.test.fortunecrunch"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk android:minSdkVersion="8" />

    <application
        android:icon="@drawable/icon"
        android:label="@string/app_name" android:debuggable="true"
        android:name=".FortuneCrunch">
        <activity
            android:name=".FortuneCrunchActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
    </activity>
</application>

然后这就是我在FortuneCrunchActivity.java文件中的内容:

package com.marctremblay.test.fortunecrunch;
import android.app.Activity;
import android.app.Application;


import android.content.res.Resources;
import android.os.Bundle;
import android.view.View;
import android.widget.ImageView;
import android.widget.TextView;

class FortuneCrunch extends Application{

FortuneCrunch()
{   
}


}


class FortuneCrunchActivity extends Activity {
    /** Called when the activity is first created. */

    @Override
    public void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

    }

}

我基本上删除了所有代码,试图让这个类工作,以确保问题不是其他任何问题。如果我从我的清单中删除android :: name,我就不会再收到错误了。

这是确切的错误

newInstance失败:Lcom / marctremblay / test / fortunecrunch / FortuneCrunch; Landroid / app / Instrumentation无法访问;

我很难过。正如我在很多例子中看到的那样,我有这个设置。想法将不胜感激!感谢。

3 个答案:

答案 0 :(得分:7)

Also, make sure to explicitly make your class public by putting public class XYZ instead of just class XYZ.

Otherwise the class will be considered as package, which will result in the same error.

答案 1 :(得分:1)

尝试将FortuneCrunch类放在自己的文件FortuneCrunch.java中,内置:

package com.marctremblay.test.fortunecrunch;
import android.app.Application;

public class FortuneCrunch extends Application {
  @Override
  public void onCreate() {
    super.onCreate();
    // Initialize your variables here
  }
}

答案 2 :(得分:0)

每次出现以下错误时,请更改全局变量类的名称( FortuneCrunch )并再次仔细执行后续步骤。

  

newInstance失败:....