2016-02-01 20 views
23

我已經使用以下命令創建了該項目。錯誤類型3.活動類{com.awesome_project/com.awesome_project.MainActivity}在反應本機(Android設備)中不存在

react-native init Awesome_Project 

我已經使用以下命令啓動了打包程序。

react-native start 

我已經使用USB驅動器連接了我的Android移動設備。

我打開了另一個命令提示符並運行以下adb命令以確保只有一個設備連接。

adb devices 

我已經使用以下命令啓動了應用程序。

react-native run-android 

我一直遇到以下錯誤。

open: Permission denied 
open: Permission denied 
Starting: Intent { com.awesome_project/.MainActivity } 
Error type 3 
Error: Activity class {com.awesome_project/ com.awesome_project.MainActivity} does not exist. 

在此先感謝。

+0

在我的情況下,我只是卸載應用程序,並重新安裝使用cd android && gradlew clean && cd .. && react-native run-android – abhi

回答

29

確保android>app>build.gradle

defaultConfig { 
     applicationId "WHATEVER_THIS_IS" 
} 

需要匹配android>app>src>main>java>com>app_name>MainActivity.java行一個:

package WHATEVER_THIS_IS; 

需要匹配android>app>src>main>java>com>app_name>MainApplication.java行一個:

package WHATEVER_THIS_IS; 

需要匹配android>app>src>AndroidManifest.xml

package="WHATEVER_THIS_IS"> 
+0

添加'android> app> src> main> java> com> app_name> MainApplication.java'方向。 –

+0

如果你的'Activity class {}不存在',你將失去像深度鏈接這樣的增強功能。設備知道如何在不按下按鈕的情況下啓動應用程序非常重要。只是很好的開發人員練習... – parker

+2

我已經完成檢查所有這些,並沒有解決任何問題 – TomSawyer

8

試運行ADB命令從Android目錄在項目中安裝APK(應提供更多的輸出):adb install app/build/outputs/apk/app-debug.apk

在我來說,是一個足夠的存儲情況

facebook/react-native問題#2885

1

在我的情況下,應用程序只是不會自動打開,沒有其他問題。

只需搜索您的Android設備中的應用程序圖標(查看所有應用程序的位置)並點擊它以手動打開應用程序。包裝商將照常開始加載應用程序。

所以這似乎是一個錯誤在這裏。不幸的是,我不知道是什麼原因造成的。

+1

儘管你是正確的,該應用程序不會自動啓動,你想自動啓動。沒有這個,你會失去增強功能,如深度鏈接。看到我上面的答案,你的配置關閉了。 – parker

+0

在環境變量中設置sdk的路徑, 就是這樣! –

+0

我有相同的經驗,apk安裝,但模擬器只是劑量自動啓動應用程序 –

4

在我的手機上安裝了一個成功的版本之後,我遇到了這個問題,但長話短說,我必須卸載它才能完成全新安裝。卸載應用程序並嘗試執行react-native run-android後,我收到此錯誤。

似乎在某些設備上「卸載」某個應用程序只會在您希望在特定時間範圍內撤銷卸載時禁用該應用程序。爲了解決這個問題,我在設置下進入了應用程序,並選擇了我的應用程序並完全卸載它。之後,我能夠再次成功地構建我的應用程序。希望這可以幫助別人。

5

我改變了我的應用程序ID從com.appNamecom.companyName.appName,我做了此更新的android>app>build.gradle

defaultConfig { 
    applicationId "com.companyName.appName" // was previously "com.appName" 
} 

我也改變了我的文件結構從android>app>src>main>java>com>appNameandroid>app>src>main>java>com>companyName>appName。這是當我得到錯誤。

要修正此錯誤,我只是做了一個項目範圍內的搜索(CMD-SHIFT-F在凌動)爲com.appName,並取代所有這些與com.companyName.appName。問題解決了!

+0

謝謝。我認爲這是通過使用Android Studio的重構功能引起的。 也許我已經運行了重命名或移動了某些東西...... 但它不會改變相對於反應原生。 – ogelacinyc

1

對於沒有解決方案的其他人遇到此問題,如果已鏈接庫,請確保位於ProjectName/androidsettings.gradle文件的include語句中包含您的應用,如下所示:include ':ThirdPartyLibrary', ':app'。我忘了:app,它是構建和安裝第三方庫,但不是實際的應用程序,導致問題。

0

有時你會得到這個錯誤,因爲你不卸載應用程序的其他以前的版本,在LG手機上,你必須去應用程序的設置和卸載應用程序,這發生在我身上。

0

如果您在應用程序build.gradle文件中啓用了構建varaint,就會發生這種情況。

當react-native運行時,它似乎在您的應用程序ID前綴測試或其他內容,它會更改某些文件中的軟件包名稱,但會使其他文件保持不變。您的應用程序找不到.MainActivity,因爲它實際上不存在於生成的新包名稱空間中。

這裏有一些東西來嘗試解決這個問題:

  • 使用FQDN清單檔案中的應用程序類和活動類的名稱。
  • 用這個one替換你的android cli文件。這是/node_modules/react-native/local-cli/runAndroid的文件

這應該可以解決您的問題。

+0

我認爲你是對的,但我不知道如何解決它。 Android工作室似乎自動將.debug添加到我的包名稱末尾。構建變體選項卡具有「調試」和「發佈」作爲選項,但看似無法刪除它們。此外,文檔https://developer.android.com/studio/build/build-variants.html中的信息似乎缺乏這方面的信息。 – AlecPerkey

+0

我目前正在開發一個項目,在部署之前需要支持構建變體。我會盡力將此問題分類出來,並用解決方案更新答案。 –

相關問題