Android找不到应用程序的主要活动 [英] Android can't find the mainactivity of application
问题描述
我已经将反应本机从0.27更新为0.35.将release.apk安装到我的设备后,我只能使用adb shell来启动它.
I've updated the react-native from 0.27 to 0.35. After installing the release.apk to my device, I was only able to start it with adb shell.
即使我可以找到我的应用程序以及有关该应用程序的所有信息,该安装程序也不会在电话上(是正确放置png-s的位置)和设置/应用程序管理器中创建桌面"图标,我无法通过其mainActivity启动它.
The installation does not create a 'desktop' icon on the phone(yes the png-s are placed properly), and in the settings/application manager, even though I can find my app and all of the infos about it, I cannot launch it by its mainActivity.
有什么想法吗?
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="my.pckg.name"
android:versionCode="1"
android:versionName="1.0">
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<uses-permission android:name="android.permission.CALL_PHONE"/>
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
<uses-sdk
android:minSdkVersion="16"
android:targetSdkVersion="22" />
<application
android:name=".MainApplication"
android:allowBackup="true"
android:label="@string/app_name"
android:icon="@mipmap/ic_launcher"
android:theme="@style/AppTheme">
<activity
android:name=".MainActivity"
android:label="@string/app_name"
android:screenOrientation="portrait"
android:configChanges="keyboard|keyboardHidden|orientation|screenSize"
android:launchMode="singleTop">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.LAUNCHER" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="http"
android:host="my.website.for.DeepLink"
android:pathPrefix="/#/register_login/status=successful" />
</intent-filter>
</activity>
</application></manifest>
MainActivity:
MainActivity:
package my.pckg.name;
import com.facebook.react.ReactActivity;
public class MainActivity extends ReactActivity {
/**
* Returns the name of the main component registered from JavaScript.
* This is used to schedule rendering of the component.
*/
@Override
protected String getMainComponentName() {
return "pckgName";
}}
MainApplication:
MainApplication:
package my.pckg.name;
import android.app.Application;
import android.util.Log;
import com.facebook.react.ReactApplication;
import com.facebook.react.ReactInstanceManager;
import com.facebook.react.ReactNativeHost;
import com.facebook.react.ReactPackage;
import com.facebook.react.shell.MainReactPackage;
//... other stuff
import java.util.Arrays;
import java.util.List;
public class MainApplication extends Application implements ReactApplication {
private final ReactNativeHost mReactNativeHost = new ReactNativeHost(this) {
@Override
protected boolean getUseDeveloperSupport() {
return BuildConfig.DEBUG;
}
@Override
protected List<ReactPackage> getPackages() {
return Arrays.<ReactPackage>asList(
new MainReactPackage(),
//.... other stuff
);
}
};
@Override
public ReactNativeHost getReactNativeHost() {
return mReactNativeHost;
}
}
推荐答案
只需弄清楚:
问题出在mainActivity标记内.您需要使用<分隔MainActivity的内部内容.intent-filter>标签.
The problem was within the mainActivity tag. You need to separate the inner content of your MainActivity with an < intent-filter> tag.
之前:
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.LAUNCHER" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="http"
android:host="my.website.for.DeepLink"
android:pathPrefix="/#/register_login/status=successful" />
</intent-filter>
(工作中的)之后:
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="http"
android:host="my.website.for.DeepLink"
android:pathPrefix="/#/register_login/status=successful" />
</intent-filter>
更多信息: https://developer.android.com/guide/components/intents-filters.html#imatch
这篇关于Android找不到应用程序的主要活动的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!