我是Android应用开发的新手,所以请耐心等待我。我正在编写一个应用程序,从Google Play服务获取GPS位置,然后通过蓝牙广播数据。我有一个获取位置的 LocationActivity ,以及一个广播数据的 AdvertiseActivity 。
我的问题是我很难理解Android应用中的文件结构,所以我怀疑我缺乏理解是我收到错误的原因。
以下是 LocationActivity 的片段,其中错误为:
@Override
public void onLocationReceived(Location location) {
Intent i = new Intent(LocationActivity.this, AdvertiseActivity.class) //problem is here
.putExtra("latitude", location.getLatitude());
startActivity(i);
}
为什么编译器无法找到AdvertiseActivity.class?我的清单下面有问题吗?
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme"
tools:ignore="AllowBackup,GoogleAppIndexingWarning">
<activity android:name="com.android.app.LocationActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name="com.android.app.AdvertiseActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
</application>
请帮忙。谢谢!
答案 0 :(得分:0)
您正在使用两项活动 MAIN 。从清单中删除:
<action android:name="android.intent.action.MAIN" />
<action android:name="android.intent.action.DEFAULT" />
来自AdvertiseActivity
的活动代码。希望这会有所帮助。
答案 1 :(得分:0)
应用程序在启动活动中只能有一个android.intent.action.MAIN。在您已定义的LocationActivity中,从广告活动中删除intent-filter。
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
所以就像
<activity android:name="com.android.app.AdvertiseActivity"/>
答案 2 :(得分:0)
从清单
中删除这些行 <intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
并且只保留这一行。
<activity android:name="com.android.app.AdvertiseActivity"/>