我的问题是:无法启动服务Intent {act = .connections.MoodyService} U = 0:找不到
编辑 我已经在源代码中将我的包从连接更改为服务,抱歉让人感到困惑
我的清单 `
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.moody"
android:installLocation="auto"
android:versionCode="0"
android:versionName="0.6.7 alpha" >
<uses-sdk
android:maxSdkVersion="18"
android:minSdkVersion="14"
android:targetSdkVersion="17" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<application
android:allowBackup="true"
android:allowClearUserData="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name="activities.MainActivity"
android:label="@string/app_name" >
</activity>
<activity
android:name="activities.Menu_esq"
android:label="@string/title_activity_menu_esq" >
</activity>
<activity
android:name="activities.BaseActivity"
android:label="@string/title_activity_base" >
</activity>
<activity
android:name="activities.MainView"
android:label="@string/title_activity_main_view" >
</activity>
<activity
android:name="activities.LoginActivity"
android:label="@string/app_name"
android:noHistory="true"
android:windowSoftInputMode="adjustResize|stateVisible" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter> …Run Code Online (Sandbox Code Playgroud) 我创建了一个名为HelloService的新类.我将其添加到Android manifest.xml中.
public class HelloService extends Service {
private Timer timer = new Timer();
private long INTERVAL = 5000;
public void onCreate() {
super.onCreate();
startservice();
}
private void startservice() {
timer.scheduleAtFixedRate( new TimerTask() {
public void run() {
Log.d("servy", "This proves that my service works.");
}
}, 0, INTERVAL);
; }
private void stopservice() {
if (timer != null){
timer.cancel();
}
}
@Override
public IBinder onBind(Intent arg0) {
return null;
}
}
Run Code Online (Sandbox Code Playgroud)
我的其他活动称之为:
Intent helloservice = new Intent(this, HelloService.class);
startService(helloservice); …Run Code Online (Sandbox Code Playgroud) 我知道,我不是第一个遇到这个问题的人,但我尝试了很多解决方案,我发现并且没有人工作......也许你会发现错误
错误(也是如此,没有.class和/.Client取决于其他设置)
12-02 16:40:15.359:W/ActivityManager(74):无法启动服务Intent {act = com.android.fh.EnOceanApp.Client.class}:未找到
在清单中,这包含在应用程序中,不在活动中(在活动中也尝试使用".Client")
onCreate()中的代码
startService(new Intent(this, Client.class));
Run Code Online (Sandbox Code Playgroud)
要么
startService(new Intent(this.getApplicationContext(), Client.class));
Run Code Online (Sandbox Code Playgroud)
要么
Intent intent=new Intent("com.android.fh.EnOceanApp.Client.class");
this.startService(intent);
Run Code Online (Sandbox Code Playgroud)
要么
Intent intent=new Intent("com.android.fh.EnOceanApp.Client");
this.startService(intent);
Run Code Online (Sandbox Code Playgroud)
现在,我再也没有一个想法.... com.android.fh.EnOceanApp是包,Client.java是这个包中的服务类
我忘记了清单:
<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name" >
<activity
android:label="@string/app_name"
android:name=".EnOceanAppActivity" >
<intent-filter >
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".ListView"
android:label="List View">
</activity>
<activity android:name=".GraphView"
android:label="Graph View">
</activity>
<service
android:name=".Client"></service> //with and without ., of course without this comment
</application>
Run Code Online (Sandbox Code Playgroud) 我写了一个获取天气的android服务,AndroidManifest.xml是:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.my.weather"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk android:minSdkVersion="15" />
<uses-permission android:name="android.permission.INTERNET" />
<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name" >
<service
android:name=".WeatherService"
android:exported="true" >
</service>
</application>
</manifest>
Run Code Online (Sandbox Code Playgroud)
现在,我想让另一个apk启动此服务:
Intent service = new Intent();
service.setClassName("com.my.weather", "com.my.weather.WeatherService");
context.bindService(service, weatherServiceConnection, Context.BIND_AUTO_CREATE);
Run Code Online (Sandbox Code Playgroud)
我收到了错误消息:
E/AndroidRuntime(14068): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.my.test/com.my.test.MainActivity}: java.lang.SecurityException: Not allowed to bind to service Intent { cmp=com.my.weather/.WeatherService }
Run Code Online (Sandbox Code Playgroud)
我怎样才能解决这个问题?
其他apk是使用Messenger方法与气象服务进行通信.
================================================== ==============================
谢谢大家!
现在我修改我的气象服务的AndroidManifest.xml:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.my.weather"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk android:minSdkVersion="15" />
<uses-permission android:name="android.permission.INTERNET" />
<application
android:icon="@drawable/ic_launcher" …Run Code Online (Sandbox Code Playgroud) 当我尝试在MyActivity上使用CheckBox"活动来启动名为"MyService"的服务时,我在DDMS中看到以下错误:
W/ActivityManager( 73): Unable to start service Intent { cmp=com.example.android.myprogram/.MyService }: not found
Run Code Online (Sandbox Code Playgroud)
我使用了教程http://developer.android.com/resources/tutorials/views/hello-formstuff.html,并将提供的代码添加到我的onCreate()方法的末尾.我在MyActivity.java和MyService.java中单独指定了类.
package com.example.android.myprogram;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.CheckBox;
public class MyActivity extends Activity {
private static final String TAG = "MyActivity";
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
final CheckBox checkbox = (CheckBox) findViewById(R.id.checkbox);
checkbox.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
// Perform action on …Run Code Online (Sandbox Code Playgroud) 我尝试做什么
大家好,我正在尝试为我的应用程序创建一些应用内商品,用于捐赠.因为我赠送了我朋友的免费音乐 - 他饶舌.无论如何,我在我的开发者帐户上创建了5个应用内商品:
这是我在那里生成的参考密钥.它们被保存并发布.现在,如果在本教程中编写了In-App-Service:In-App Easy Tutorial.代码似乎工作得很完美,没有错误,当我编译它可以运行的演示代码时.但是当我尝试它时,我总是得到这个错误:
12-06 14:23:49.400: E/BillingService(4719): BillingHelper not fully instantiated
Run Code Online (Sandbox Code Playgroud)
题
那么我需要更改用户可以选择不同的应用内产品?我需要在某个地方宣布它们吗?另外,如果你有一个很棒的教程,这些东西都很好地描述和完全工作,请告诉我.
这是我用于In-app-service的类:
de.stepforward
de.stepforward.billing
de.stepforward.billing.util
目前我将为您提供我的BillingHelper和Activity的代码,如果您需要更多代码,请告诉我.
码
AppMainTest.class
package de.stepforward.billing;
import de.stepforward.R;
import de.stepforward.R.id;
import de.stepforward.R.layout;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.ImageView;
public class AppMainTest extends Activity implements OnClickListener{
private static final …Run Code Online (Sandbox Code Playgroud) 在许多文章,教程,文档,到目前为止,我们调用startService()或bindService(),都启动了服务.我们也可以同时打电话,但这是一个不同的故事.没有startService()我无法bindService.
private void bindTunManagerService(int flags) {
TunnelManagerService.setParentActivity(this);
Intent bindIntent = new Intent(this, TunnelManagerService.class);
startService(bindIntent);
tunManagerServiceStarted = bindService(bindIntent, tunConnection, BIND_AUTO_CREATE);
Log.d(TAG, "tunManagerServiceStarted : " + tunManagerServiceStarted + ", ** tunManagerService = " + tunManagerService );
Run Code Online (Sandbox Code Playgroud)
在上面的代码中,如果我注释startService(),bindService返回false并且tunManagerService = null,即使onServiceConnected没有被激发,我得到"无法sart服务意图{...}未找到"消息.添加startService后,将调用服务的onCreate,onStart,onServiceConnected并成功绑定.
在实际使用中,首先是startServie是必要的,然后我们才能使用bindService().这意味着没有startSErvice,我们就无法bindService !! 如果这个语句错了,为什么我不能在没有启动的情况下bindService?
有任何想法吗 ????
代码已添加
ServiceConnection:
private ServiceConnection tunConnection = new ServiceConnection() {
@Override
public void onServiceConnected(ComponentName name, IBinder service) {
Log.d(TAG,"onServiceConnected" );
tunManagerService = ITunnelManagerService.Stub.asInterface(service);
doConnect();
}
@Override
public void onServiceDisconnected(ComponentName name) {
Log.d(TAG,"onServiceDisconnected" );
tunManagerService = null;
}
};
Run Code Online (Sandbox Code Playgroud)
服务: …