2016-10-12 65 views
2

First of all, here is a test repo to replicate my issue找不到符號getCurrentActivity

你好, 我試圖創造陣營原生一個簡單的Android模塊,我有一些麻煩的當前活動來自Java代碼。

這不是我工作的第一個本地模塊,但我從未從今天開始獲取活動引用。

interested module是Estimote SDK的橋樑,但這與問題無關。
Android Studio中的模塊完美的作品,但是當我嘗試用react-native run android我碰到下面的錯誤來構建它:

:react-native-estimote-android:compileReleaseJavaWithJavac 
/Users/matteo/dev/react-native-example/react-native-estimote-android/android/src/main/java/com/mmazzarolo/estimoteandroid/EstimoteAndroidModule.java:64: error: cannot find symbol 
     Activity currentActivity = this.getCurrentActivity(); 
            ^
    symbol: method getCurrentActivity() 
1 error 
:react-native-estimote-android:compileReleaseJavaWithJavac FAILED 

FAILURE: Build failed with an exception. 

,從延長ReactContextBaseJavaModule我的理解應該足以給予我的這個用法.getCurrentActivity()(和Android工作室同意我的觀點)。

這是我已經嘗試過的事情:
- 實現ActivityEventListener:同找不到符號錯誤,當我嘗試導入ActivityEventListener;
- 安卓/ .gradlew乾淨
- 守望手錶德爾 - 所有& &室射頻node_modules/& & NPM緩存清理& & NPM修剪& & NPM我
- 試了兩個不同的計算機相同的回購.. 。

任何提示? 預先感謝您。

回答

5

的問題是與版本的反應母語模塊「的反應,本機estimote-Android的

只要改變compile 'com.facebook.react:react-native:0.12.+'compile 'com.facebook.react:react-native:+'

這將解決無法找到getCurrentActivity符號。

getCurrentActivity方法在react-native 0.12版本中不可用。這就是爲什麼它拋出錯誤。

+0

它有點晚回覆,但希望它對你有用 – Jickson

+1

謝謝你! 現在正在工作。 –

1
@ReactMethod 
public void start(final Callback callback) { 
    Activity currentActivity = getCurrentActivity(); 
    this.mBeaconManager.connect(new BeaconManager.ServiceReadyCallback() { 
     @Override 
     public void onServiceReady() { 
      mBeaconManager.startRanging(region); 
      callback.invoke(); 
     } 
    }); 
} 

從啓動方法刪除這一點,如果你這樣做this.getCurrentActivity(),它會referr到EstimoteAndroidModule方面不應用ReactContextBaseJavaModule背景