我使用以下命令创建了项目。
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 :(得分:46)
确保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>main>AndroidManifest.xml
第一行:
package="WHATEVER_THIS_IS">
答案 1 :(得分:15)
我从设备上卸载了该应用程序,但根本无法在“设置”>“应用程序”中看到它。通过执行以下操作完全卸载了应用程序后,错误终于消失了:
const data = [
{
"id":"5b9ce8d51dbb85944baddfa5",
"name":"EARBANG",
"parent_id":0,
"status":"Inactive",
"children":[
{
"id":"5b9ce8d5d978f75e4b1584ba",
"name":"DIGINETIC",
"parent_id":"5b9ce8d51dbb85944baddfa5",
"status":"Active",
"children":[
{
"id":"5b9ce8d5cb79d63c8b38018c",
"name":"PREMIANT",
"parent_id":"5b9ce8d5d978f75e4b1584ba",
"status":"Active",
}
]
}
]
},
{
"id":"5b9ce8d51650fac75fa359c8",
"name":"GEEKOLOGY",
"parent_id":0,
"status":"Active",
},
{
"id":"5b9ce8d59f52e801a2e40a97",
"name":"TOYLETRY",
"parent_id":0,
"status":"Inactive",
},
{
"id":"5b9ce8d5d136fcfed2f3e0dd",
"name":"PAPRIKUT",
"parent_id":0,
"status":"Inactive",
},
{
"id":"5b9ce8d53afb7a61e188c48e",
"name":"EYERIS",
"parent_id":0,
"status":"Inactive",
}
];
const search = (data, id) => data.find(d => d.id === id) || search(d.children);
console.log(search(data, '5b9ce8d51dbb85944baddfa5'));
答案 2 :(得分:10)
如果你有appIdSuffix,你应该将它添加到反应本机运行命令的命令。
$(function () {
$(".profile-img").html($(".profile-img").html().replace("blurr", "default"));
});
应该添加package.json的快捷方式并通过npm运行。
eg. react-native run-android --appIdSuffix beta
然后运行:
...
"scripts": {
...
"android-beta": "react-native run-android --appIdSuffix beta",
},
答案 3 :(得分:9)
尝试运行adb命令在项目中安装android dir的apk(应提供更多输出):adb install app/build/outputs/apk/app-debug.apk
就我而言,存储空间不足
答案 4 :(得分:7)
我已将我的应用ID从com.appName
更改为com.companyName.appName
,我已在android>app>build.gradle
中进行了此更新:
defaultConfig {
applicationId "com.companyName.appName" // was previously "com.appName"
}
我还将文件结构从android>app>src>main>java>com>appName
更改为android>app>src>main>java>com>companyName>appName
。这是我收到错误的时候。
为了解决错误,我只是对CMD-SHIFT-F
进行了项目范围内的搜索(Atom中为com.appName
),并将其全部替换为com.companyName.appName
。问题解决了!
答案 5 :(得分:5)
我在手机上安装了成功的版本后遇到了这个问题,但长话短说我不得不卸载它才能进行全新安装。卸载应用程序并尝试执行react-native run-android
后,我收到此错误。
似乎在某些设备上“卸载”应用程序只会禁用它,以防您希望在特定时间范围内撤消卸载。为了解决这个问题,我进入了设置下的应用程序并选择了我的应用程序并完全卸载了它。之后我又能够成功构建我的应用程序。希望这可以帮助别人。
答案 6 :(得分:3)
您可能已删除/卸载了您的应用程序,但是当您检查设置/应用程序时,您会发现它并未完全卸载。
答案 7 :(得分:2)
在我的情况下,应用程序不会自动打开,没有其他问题。
只需在Android设备中搜索应用图标(查看所有应用的位置),然后点按手动打开应用。打包器将照常开始加载应用程序。
所以这似乎是一个错误。不幸的是,我真的不知道造成它的原因。
答案 8 :(得分:1)
adb卸载packageName 为我工作。 例如: adb卸载com.abc
答案 9 :(得分:1)
华为p20 lite。 尝试从无法安装的下载中安装应用程序。回到运行以在android studio中安装并收到错误 错误3 mainactivity不存在。 不得不删除用户的“私人空间” 解决问题
答案 10 :(得分:1)
确保您在gradle和包名称中的applicationid相同
答案 11 :(得分:1)
在使用 react-native-config 时,我在使用 applicationIdSuffix
和 productFlavors
时遇到了这个问题。
将 --appIdSuffix=[YOUR_FLAVOR]
添加到我的 react-native run-android
命令完成了这项工作。
例如
...
flavorDimensions "env"
productFlavors {
dev {
resValue "string", "app_name", "[DEV] My App"
applicationIdSuffix ".dev"
}
staging {
resValue "string", "app_name", "[STG] My App"
applicationIdSuffix ".staging"
}
prod {
resValue "string", "app_name", "My App"
}
}
...
...
"scripts": {
"android": "react-native run-android --variant=devDebug --appIdSuffix=dev",
"android:staging": "react-native run-android --variant=stagingDebug --appIdSuffix=staging",
"android:prod": "react-native run-android --variant=prodDebug",
"android:staging:release": "react-native run-android --variant=stagingRelease --appIdSuffix=staging",
"android:prod:release": "react-native run-android --variant=prodRelease",
},
...
答案 12 :(得分:1)
当我卸载应用程序并尝试再次使用react-native run-android
进行安装时出现此问题。
以下为我工作:
1.从设置菜单转到应用程序列表
2.您将在列表中看到您的应用程序,并在左侧显示消息“未为此用户安装应用程序”。
3.在设置中打开该应用程序,然后单击右上方菜单图标并选择“为所有用户卸载”。
希望它有所帮助!
答案 13 :(得分:1)
有时您会收到此错误,因为您没有卸载该应用的其他旧版本,在LG手机上您必须转到应用设置并卸载该应用,这种情况发生在我身上。
答案 14 :(得分:1)
对于遇到此问题但没有解决方案的其他人,如果您已经链接了库,请确保位于settings.gradle
的{{1}}文件中的应用包含在include语句中,例如所以:ProjectName/android
。我忘了include ':ThirdPartyLibrary', ':app'
,它是构建和安装第三方库,但不是实际的应用程序,导致问题。
答案 15 :(得分:0)
一个对我有用的。万一您不小心从连接的设备上卸载了应用程序
sudo rm -rf android/app/build/outputs/apk/debug
sudo npm run android
答案 16 :(得分:0)
我有一个类似的问题。
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.15/lodash.min.js"></script>
对我来说,我的目标设备有多个帐户,因此在为另一个ime运行该应用程序之前,请确保从所有帐户中将其卸载。
答案 17 :(得分:0)
如果您正在下载基于纱线的应用程序并使用 npm install 而不是 yarn install 来获取您的依赖项,也可能会导致这种情况。 所以尝试重新下载项目并使用合适的。
答案 18 :(得分:0)
在同一问题上,我的看法略有不同。
我没有使用react,但是确实遇到了同样的问题。
我尝试了此页面上的所有解决方案,奇怪的是,每个解决方案都只能工作一次。但是问题继续出现。
最后我发现这样做:
adb卸载com.appname
接着听筒重新启动
自发现以来每次都解决了该问题。
使用Samsung S8和Android 3.4.1。除了OKHttp,没有疯狂的库。在Mac上运行。
答案 19 :(得分:0)
这是在更改项目包名称后发生的。
我在这里尝试了其他一些答案,但是在我手动删除android/build
目录并重新运行react-native run-android
强制从src重建应用程序之前,没有任何效果。
原来该构建已被缓存,包括对旧软件包名称的引用。
答案 20 :(得分:0)
就我而言,我在google-services.json(来自Firebase)中使用了错误的package_name(client.client_info.android_client_info.package_name
)。它必须匹配@parker提到的这四个值。
答案 21 :(得分:0)
我尝试了上面发布的所有答案,但用例没有任何结果。
最终通过执行以下命令得到解决:
react-native run-android --variant=alphaDebug
如果应用程序中有多种口味,那么我们必须提及变体 通过命令行
答案 22 :(得分:0)
好吧,这是当我们从手机上手动卸载apk时发生的。它表明MainActivity不存在。 解决方案:转到为所有用户设置和卸载App实例的应用,然后使用react-native run-android再次运行即可解决您的问题
答案 23 :(得分:0)
我通过在手机上手动安装调试应用程序解决了该问题。
为此,请转到 [Project_Path] \ android \ app \ build \ outputs \ apk \ debug \ app-debug.apk
将此 app-debug.apk 复制到您的移动设备。
现在,只需将其正常安装在您的手机中,就可以了。
答案 24 :(得分:0)
就我而言..上述解决方案均无效。 然后,我找到了原因,我之前安装了具有相同软件包名称的应用程序。我已经从手机上卸载了它,但是因为我有Oreo设备..它也已安装在另一个用户中。因此,通过从所有用户卸载..解决了我的问题。 这可能对您没有帮助。.但这仍然是我的解决方法。
答案 25 :(得分:0)
如果您在app build.gradle文件中启用了构建变量,则会发生这种情况。
当react-native运行时,它似乎在测试或其他东西上加上你的应用程序id,它改变了某些文件中的包名,但却让其他文件保持不变。您的应用程序找不到.MainActivity,因为它实际上不存在于生成的新包命名空间中。
以下是尝试解决此问题的一些事项:
/node_modules/react-native/local-cli/runAndroid
这可以解决您的问题。
答案 26 :(得分:-2)
adb 卸载 com.packagename。它对我有用。