当我尝试在构建后在智能手机(Samsung Galaxy J5)上启动应用程序时,我的应用程序立即崩溃并出现以下错误:
java.lang.RuntimeException: Unable to instantiate application android.permission.INTERNET: java.lang.ClassNotFoundException: Didn't find class "android.permission.INTERNET" on path: DexPathList[[zip file "/data/app/fr.hardis.VBNantes-1/base.apk"],nativeLibraryDirectories=[/data/app/fr.hardis.VBNantes-1/lib/arm, /data/app/fr.hardis.VBNantes-1/base.apk!/lib/armeabi-v7a, /vendor/lib, /system/lib]]
我正在使用 Ionic 5.2 和 Angular。
但是我尝试将其添加到我的 config.xml 中:
<edit-config file="app/src/main/AndroidManifest.xml" mode="merge" target="/manifest">
<uses-permission android:name="android.permission.INTERNET" />
</edit-config>
谢谢您的帮助!
在 Android 中,权限被添加到 Android 平台文件夹内的 AndroidMenifest.xml 文件中。
如果您希望您的应用程序使用互联网,请访问您的
你的项目\platforms ndroid pp\src\main\AndroidManifest.xml
归档并添加以下代码:
<uses-permission android:name="android.permission.INTERNET" />
我今天解决了类似的问题。
问题似乎是构建系统中的缓存不良。您曾经有一个需要
android.permission.INTERNET
权限的插件,然后以构建系统错误处理的某种方式删除了该插件。它没有清除任何跟踪所包含类的内部缓存。然后,当您稍后添加需要相同权限的插件时,构建系统认为它已经包含了所需的类,因此没有添加它。
在我的案例中解决这个问题;清理所有构建工件(在我的例子中是
cordova clean
),删除所有插件,删除平台本身(在我的例子中是cordova platform remove android
),然后重建...添加插件和平台,最后重新编译。