我的应用可以通过两种方式启动:
第一种方法效果很好。主要活动打开,用户可以使用该应用程序。但是第二种方法会产生以下错误/崩溃:
无法实例化活动 ComponentInfo {de.mystuff.myapp / de.mystuff.myapp.MainActivity}: java.lang.ClassNotFoundException:没找到类 " de.mystuff.myapp.MainActivity"在路径上:DexPathList [[zip文件 " /data/app/de.mystuff.myapp-1/base.apk"],nativeLibraryDirectories = [/数据/应用/ de.mystuff.myapp-1 / LIB /臂, /data/app/de.mystuff.myapp-1/base.apk!/lib/armeabi-v7a, / vendor / lib,/ system / lib]]
在我的清单中,我已宣布主要活动如下:
<activity android:name=".MainActivity" android:theme="@style/AppTheme">
<intent-filter>
<action android:name="android.intent.action.CALL" />
<category android:name="android.intent.category.DEFAULT" />
<action android:name="android.intent.action.CALL_PRIVILEGED" />
<data android:scheme="tel" />
</intent-filter>
</activity>
我的活动代码如下:
[Activity (Label = "MyApp", MainLauncher = true, Icon = "@mipmap/ic_launcher")]
public class MainActivity : Activity, SwipeRefreshLayout.IOnRefreshListener
{
AppSettings mAppSettings;
ContactListViewAdapter mListViewAdapter;
SwipeRefreshLayout mSwiper;
protected override void OnCreate (Bundle savedInstanceState)
{
base.OnCreate (savedInstanceState);
SetContentView (Resource.Layout.Main);
// Do some other init stuff
}
}
答案 0 :(得分:3)
您应该避免混淆声明式样式并手动编写AndroidManifest.xml
。
[Activity (Label = "MyApp", MainLauncher = true, Icon = "@mipmap/ic_launcher")]
在实际使用的(生成的)AndroidManifest.xml
中生成一段代码,如下所示:
<activity android:icon="@drawable/icon" android:label="AndroidApp1" android:name="md5c178831cd46fc53bebc42cf953f78ced.MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
您的代码将在其他地方。您可以在输出文件夹AndroidManifest.xml
中找到生成的.\obj\Debug\android
。
<强>解决方案:强>
您可以通过以下属性添加内容:
[Activity (Label = "MyApp", MainLauncher = true, Icon = "@mipmap/ic_launcher")]
[IntentFilter(
new [] { Intent.ActionCall, "android.intent.action.CALL_PRIVILEGED" },
Categories = new [] {Intent.CategoryDefault},
DataScheme = "tel")]
public class MainActivity : Activity, SwipeRefreshLayout.IOnRefreshListener
{
// ...
}
并从清单文件中删除手动编辑。输出结果如下:
<activity android:icon="@drawable/icon" android:label="AndroidApp1" android:name="md5c178831cd46fc53bebc42cf953f78ced.MainActivity">
<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.CALL" />
<action android:name="android.intent.action.CALL_PRIVILEGED" />
<category android:name="android.intent.category.DEFAULT" />
<data android:scheme="tel" />
</intent-filter>
</activity>
答案 1 :(得分:0)
对于Xamarin.Android,我能够通过删除活动声明并在 <input ng-show="$state.includes('state.to.go')" id="surname" type="text" class="form-control"
ng-model="searchSurname" placeholder="Filter surname">
中将我的包设置为ProjectNamespace.ProjectNamespace
来解决此问题我不知道它为什么会起作用但是确实如此。
以下是我的AndroidManifest.xml.
文件的外观:
Manifest