2015-11-26 160 views
2

我想使用此模塊https://github.com/nucleartux/react-native-date作爲react-native。我試圖安裝這個模塊,但是當我執行第4步(註冊反應包)時,我有一個編譯錯誤。 錯誤消息:錯誤:不兼容的類型:MainActivity無法轉換爲FragmentActivity .addPackage(新的ReactDatePackage(this))

MainActivity.java:31: error: incompatible types: MainActivity cannot be converted to FragmentActivity .addPackage(new ReactDatePackage(this)) ^ Note: Some messages have been simplified; recompile with -Xdiags:verbose to get full output 1 error
:app:compileDebugJavaWithJavac FAILED
* What went wrong: Execution failed for task ':app:compileDebugJavaWithJavac'. Compilation failed.

代碼錯誤:

package com.myapp; 

import android.app.Activity; 
import android.os.Bundle; 
import android.view.KeyEvent; 

import com.facebook.react.LifecycleState; 
import com.facebook.react.ReactInstanceManager; 
import com.facebook.react.ReactRootView; 
import com.facebook.react.modules.core.DefaultHardwareBackBtnHandler; 
import com.facebook.react.shell.MainReactPackage; 
import com.facebook.soloader.SoLoader; 

import me.nucleartux.date.ReactDatePackage; 
import android.support.v4.app.FragmentActivity; 

public class MainActivity extends Activity implements 

DefaultHardwareBackBtnHandler { 

private ReactInstanceManager mReactInstanceManager; 
private ReactRootView mReactRootView; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    mReactRootView = new ReactRootView(this); 

    mReactInstanceManager = ReactInstanceManager.builder() 
      .setApplication(getApplication()) 
      .setBundleAssetName("index.android.bundle") 
      .setJSMainModuleName("index.android") 
      .addPackage(new MainReactPackage()) 
      .addPackage(new ReactDatePackage(this)) 
      .setUseDeveloperSupport(BuildConfig.DEBUG) 
      .setInitialLifecycleState(LifecycleState.RESUMED) 
      .build(); 

    mReactRootView.startReactApplication(mReactInstanceManager, "myapp", null); 

    setContentView(mReactRootView); 
} 

@Override 
public boolean onKeyUp(int keyCode, KeyEvent event) { 
    if (keyCode == KeyEvent.KEYCODE_MENU && mReactInstanceManager != null) { 
     mReactInstanceManager.showDevOptionsDialog(); 
     return true; 
    } 
    return super.onKeyUp(keyCode, event); 
} 

@Override 
public void onBackPressed() { 
    if (mReactInstanceManager != null) { 
    mReactInstanceManager.onBackPressed(); 
    } else { 
    super.onBackPressed(); 
    } 
} 

@Override 
public void invokeDefaultOnBackPressed() { 
    super.onBackPressed(); 
} 

@Override 
protected void onPause() { 
    super.onPause(); 

    if (mReactInstanceManager != null) { 
     mReactInstanceManager.onPause(); 
    } 
} 

@Override 
protected void onResume() { 
    super.onResume(); 

    if (mReactInstanceManager != null) { 
     mReactInstanceManager.onResume(this); 
    } 
} 
} 

你能幫我解決這個問題,好嗎?

回答

0

the doc at step 4,你也必須讓你MainActivity延長FragmentActivity

public class MainActivity extends FragmentActivity implements DefaultHardwareBackBtnHandler { // ! extends from FragmentActivity 

(你只能擴展Activity

+0

這不是幫助我。 – Maksim

+0

你能修改你的文章嗎? :)你確定你用'react-native run-android'重建了你的應用嗎? – Almouro

+0

@Maksim你能解決你的問題嗎? :) – Almouro

相關問題