2017-09-22 16 views
1

私は1つのアクティビティ(MainActivity)を持つ非常に簡単なウィジェットアプリケーションを持っています。 私はBlankActivityテンプレートからMainActivityを作成しました。少し後にコンポーネントで埋めて、AndroidManifestに追加しました。Androidはデフォルトのアクティビティ(MainActivity)を起動しません

問題は、Androidがアクティビティ(唯一)を起動しないことです。

アプリの起動時に表示されるのは、白い空白の表示(app-nameのトップバー付き)です。

デバッグ中にブレークポイントを設定していませんでした。

私はMainActivityにし、それなしでDEFAULTカテゴリを設定しようとしました:私は確信している

android:name="pl.test.firstwidget.view.MainActivity" 

android:name=".view.MainActivity" 

<category android:name="android.intent.category.DEFAULT"/> 

私が主な活動への完全またはショートパスを入れて試してみました私のMainActivityはビューパッケージに入っています。

  • 私はエミュレータからアプリケーションをアンインストールしようとしましたが、再度アプリケーションをインストールしようとしましたが、それは役に立たなかったです。私は別のエミュレータにアプリケーションをインストールしようとした
  • - 私は携帯電話にアプリをインストールしようとした
  • ノー成功 - いいえ成功。
  • 私はプロジェクトをきれいにして再構築しようとしましたが、成功しませんでした。
  • AndroidStudioの実行設定でDefaultActivityを設定しようとしましたが、成功しませんでした。
  • 実行コンフィギュレーションで指定されたアクティビティ(MainActivity)を設定しようとしましたが、成功しませんでした。

のAndroidManifest.xml:

<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="pl.test.firstwidget" 
    android:versionCode="1" 
    android:versionName="1.0"> 

    <uses-permission android:name="android.permission.INTERNET"/> 

    <application 
    android:allowBackup="true" 
    android:icon="@mipmap/ic_launcher" 
    android:label="@string/app_name" 
    android:supportsRtl="true" 
    android:theme="@style/AppTheme"> 

    <activity 
     android:name=".view.MainActivity" 
     android:label="@string/app_name" 
     android:screenOrientation="portrait"> 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN"/> 
      <category android:name="android.intent.category.DEFAULT"/> 
      <category android:name="android.intent.category.LAUNCHER"/> 
     </intent-filter> 
    </activity> 

    <receiver android:name=".view.MyWidgetProvider" > 
     <intent-filter> 
      <action android:name="android.appwidget.action.APPWIDGET_UPDATE" /> 
     </intent-filter> 
     <meta-data android:name="android.appwidget.provider" android:resource="@xml/widget_info" /> 
    </receiver> 

    </application> 

</manifest> 

MainActivity.java:

package pl.test.firstwidget.view; 
(...) 

public class MainActivity extends AppCompatActivity { 

    @BindView(R.id.ordersNumber) TextView ordersNumber; 
    @BindView(R.id.ordersValue) TextView ordersValue; 
    @BindView(R.id.lastUpdate) TextView lastUpdate; 
    @BindView(R.id.refreshButton) TextView refreshButton; 

    @Override 
    public void onCreate(Bundle savedInstanceState, PersistableBundle persistentState) { 
     super.onCreate(savedInstanceState, persistentState); 
     setContentView(R.layout.activity_main); 

     ButterKnife.bind(this); 
     fillView(); 
    } 

    private void fillView() { 
     //empty so far  
    } 

    @OnClick(R.id.refreshButton) 
    public void refresh() { 
     //empty so far 
    } 

} 

build.gradle

apply plugin: 'com.android.application' 
apply plugin: 'me.tatarka.retrolambda' 

android { 
    compileSdkVersion 25 
    buildToolsVersion "25.0.2" 
    defaultConfig { 
     applicationId 'pl.test.firstwidget' 
     minSdkVersion 15 
     targetSdkVersion 25 
     testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" 
    } 
    buildTypes { 
     release { 
      minifyEnabled false 
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
     } 
    } 
    productFlavors { 
    } 
} 

dependencies { 
    compile fileTree(include: ['*.jar'], dir: 'libs') 
    androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', { 
     exclude group: 'com.android.support', module: 'support-annotations' 
    }) 

    compile 'com.google.code.gson:gson:2.8.0' 
    compile 'com.squareup.retrofit2:retrofit:2.3.0' 
    compile 'com.squareup.retrofit2:converter-gson:2.3.0' 
    compile 'com.squareup.okhttp3:logging-interceptor:3.8.0' 

    compile group: 'joda-time', name: 'joda-time', version: '2.9.9' 

    compile 'com.jakewharton:butterknife:8.6.0' 
    annotationProcessor 'com.jakewharton:butterknife-compiler:8.8.1' 

    compile 'com.android.support:appcompat-v7:25.3.1' 
    testCompile 'junit:junit:4.12' 
} 

誰も私が間違って何を見ていますか?

答えて

3

あなたはのonCreate(android.osと同じpublic void onCreate(Bundle savedInstanceState)ないpublic void onCreate(Bundle savedInstanceState, PersistableBundle persistentState)再起動しても、あなたの活動状態を永続化するAPI 21+のために意図されている

注意をオーバーライドする必要があります。PersistableBundle

について属性で作成されたもの 活動がマニフェストに(persistAcrossRebootsに設定し、それ以外の場合は、したがって、空のビューと呼ば得ることはありませんpersistableModeのために呼ばれるバンドル)が、)

活動がされている場合 以前にシャットダウンまたは電源を切断した後に再初期化された場合、 このバンドルには、onSaveInstanceState(バンドル)の outPersistentStateに最後に供給されたデータが含まれています。注:それ以外の場合、 はnullです。

だから、何も間違っていないようだ

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState, persistentState); 
    setContentView(R.layout.activity_main); 

    ButterKnife.bind(this); 
    fillView(); 
} 
+0

をあなたが意味する、それは、Android Studioから起動するとき、またはしませんホーム画面のアイコンをクリックします。 –

+0

@PedroVarelaは 'アプリが起動したときに白い空白のビューが表示されています.'と私はもっと多くのリンク(今すぐ収集)と情報を聞かせて –

+0

バターナイフを外す –

2

を使用しています。

あなたがAndroidの開発を開始している場合は、今のところ、butterKnifeへのすべての参照を削除

  • を動作するはずですし、まだそれを使用していないあなただけのandroid.intent.action.MAINandroid.intent.category.LAUNCHER、マニフェストにandroid.intent.category.DEFAULTを必要としない

    1. ;それが実行されているかどうかを確認するだけです。

    2. Pavneet_Singhが答えとしてあなたonCreate方法を変更

      が、ちょうど使用しているスーパーを使用していない:

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
        super.onCreate(savedInstanceState); 
        setContentView(R.id.activity_main); 
        // ..code 
    } 
    
  • +0

    Ad.2。私は始まっていない、ちょうど奇妙な問題を取りました... ButterKnifeは問題に影響しません。 Ad.3。 Pavneet_Singh tipありがとうございました! – mariachi

    関連する問題