2012-03-24 12 views
3
<uses-sdk android:minSdkVersion="7" /> 

<application 
    android:description="@string/app_description" 
    android:icon="@drawable/icon" 
    android:label="@string/app_name" 
    android:theme="@android:style/Theme.Light" > 
    <activity 
     android:name="com.xyz.Main.MainActivity" 
     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> 

アンドロイド:アクティビティは、マニフェスト

に登録されていないとリントツールは、私の活動がマニフェストに登録されていないことを私に告げると、私はそれを実行しようとすると、LogCatは親切に私に語った:

java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.name/com.xyz.Main.MainActivity}: java.lang.ClassNotFoundException: com.xyz.Main.MainActivity

この私にナットを運転している、私は再インストールしたEclipseのと同様にはAPIレベル17にSDKとスタッフを更新し、今私は私の非常に自身のアプリケーションを実行できないように見えます。私はここで何が間違っているのか全く分かりません。明らかに、このアクティビティはmanifest.xml内に完全に登録されています。

ありがとうございます。

+0

本当に 'com.xyz.Main.MainActivity'が正しいパッケージ名ですか? 'manifest.xml'と言うと、あなたは' AndroidManifest.xml'を意味します、正しいのでしょうか? –

+0

あなたの 'Activity'クラスはプライベートですか?もしそうなら、それをpublicに変更してください。 –

+0

の 'AndroidManifest.xml'ファイルの一番上に' package = "package_name_here"属性があります。あなたの 'android:name ="。MainActivity "やその行に沿って何かを設定しようとすることができます(前の' .'は基本的にあなたのために残りのパッケージ名を追加します)。以前と同じようにパッケージ名全体を書いているのと同じですが、SDKを再インストールしている時点で試してみることはできませんでした。P –

答えて

3

私は解決策を持っています。今日私はこのプロジェクトにもう一度手を携えて、プロジェクトをLinuxディストリビューションに移植しようとした(これは、LinuxがAndroid開発者の苦痛であるという結論につながった)新しいAndroidプロジェクトにラインごとに追加することができます。

私はString-&特定の定数と値(たとえば、 "visible"の場合は0x00)を持つ整数インターフェイスを実装するために使用しました。残念ながら、Androidはインターフェースやアクティビティクラスに問題があるようです。インタフェースを削除し、静的な参照を定数に加えると、エミュレータは問題を取り除きました。

public class MyActivity extends Activity implements Options // [...] 
Btn.setVisibility(VISIBLE); // bad idea 

public class MyActivity extends Activity // [...] 
Btn.setVisibility(Options.VISIBLE); // good idea 

これは、少なくともこの問題を探している人に役立つはずです。

4

パッケージ名に大文字( "Main")が含まれています。これは問題の可能性があります。 code.google.comでこの問題をチェックアウト:

http://code.google.com/p/android/issues/detail?id=27529

+0

これも私の推測です。私はこの同じ問題に遭遇した。クイックフィックスを行い、プロジェクトが修正されるまでプロジェクトのチェックを無効にすることができます。それが私たちがやっていることです。 –

+0

私のためにうまくいかなかった。パッケージ名を小文字のみに変更し、全く変更がないことに気付きました。 –

+0

**パッケージ名を書くと、このエラーは発生しません。これは、パッケージ名がCapsのみであり、動作しているためです。** – GAMA

1

私は同じ問題を抱えていました。LintはAndroidManifest.xmlの明らかに正しい説明を認識しませんでした。

その後、小さな英字とドットだけでパッケージ名を1に変更しました。

Eclipseのリファクタリングではパッケージ名がどこにでも自動的に変更されないため、マニフェストファイルにパッケージ名を再入力するなど、いくつかの状況を手作業で修正する必要がありました。

最後にアプリケーションのすべての部分が新しいパッケージ名を参照したとき、Lintも最後に満足しました。

問題がある場合にのみ、パッケージ名に大文字と数字を使用してください。

パッケージ名はJavaルールに従う必要があるので、これはバグ、または少なくともLintの煩わしさと呼んでいます。

1

このような場合は、「パッケージ名」を修正してください(他に記載されているように)。「Android Lint」を再実行してください。

警告は、エラーを修正してからLintを再実行するまで続きます。

0

同じエラーメッセージが表示されていました。私の一部では愚かなエラーのためです。私はそれを見つけるためにしばらく時間がかかった、誰がこのスレッドで同じ過ちやつまずきを作るので、念のために、ここで私が間違って行わのだ何だ:

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
      package="com.example.DogsDropDown"> 

    <uses-sdk android:minSdkVersion="7" 
       android:targetSdkVersion="14"/> 

    <application 
     android:icon="@drawable/icon" 
     android:label="@string/app_name"> 
    </application> 

    <activity 
     android:name="com.example.DogsDropDown.MainActivity" 
     android:label="@string/app_name" 
     android:launchMode="singleTop"> 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN"/> 
      <category android:name="android.intent.category.LAUNCHER"/> 
     </intent-filter> 
    </activity> 

</manifest> 

あなたがそれを見たら、それは明らかだ - 私が置かのです内部ではなく<アプリケーション>仕様外のアクティビティ>仕様を参照してください。

関連する問題