剪贴板管理活动中的Andr​​oid不工作 [英] Clipboard Manager Activity Not Working in Android

查看:263
本文介绍了剪贴板管理活动中的Andr​​oid不工作的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有简单的剪贴板管理器活动从上EditText上复制和粘贴的数据旁的EditText框,但该活动不启动

我的 MainActivity 如下:

 包com.example.clipboarddemo;进口android.annotation.Sup pressLint;
进口android.app.Activity;
进口android.content.ClipData;
进口android.content.ClipboardManager;
进口android.os.Bundle;
进口android.view.Menu;
进口android.view.View;
进口android.widget.EditText;
进口android.widget.Toast;公共类MainActivity延伸活动{私人ClipboardManager mClipboardManager;
私人ClipData myClip;
私人的EditText copyField,pasteField;@覆盖
保护无效的onCreate(捆绑savedInstanceState){
    super.onCreate(savedInstanceState);
    的setContentView(R.layout.activity_main);    mClipboardManager =(ClipboardManager)getSystemService(CLIPBOARD_SERVICE);
    copyField =(EditText上)findViewById(R.id.editText1);
    pasteField =(EditText上)findViewById(R.id.editText2);}@燮pressLint(NewApi)
公共无效副本(查看视图){
    字符串文本= copyField.getText()的toString()。
    myClip = ClipData.newPlainText(文字,文本);
    mClipboardManager.setPrimaryClip(myClip);
    Toast.makeText(getApplicationContext(),文字复制,Toast.LENGTH_SHORT).show();}@燮pressLint(NewApi)
公共无效贴(查看视图){
    ClipData ABC = mClipboardManager.getPrimaryClip();
    ClipData.Item项= abc.getItemAt(0);
    字符串文本= item.getText()的toString()。
    pasteField.setText(文本);
    Toast.makeText(getApplicationContext(),文本粘贴,Toast.LENGTH_SHORT).show();
}@覆盖
公共布尔onCreateOptionsMenu(菜单菜单){
    。getMenuInflater()膨胀(R.menu.main,菜单);
    返回true;
}}

的Andr​​oidManifest.xml 文件是:

 <?XML版本=1.0编码=UTF-8&GT?;
<清单的xmlns:机器人=htt​​p://schemas.android.com/apk/res/android
包=com.example.clipboarddemo
安卓版code =1
机器人:=的versionName1.0><用途-SDK
    安卓的minSdkVersion =8
    机器人:targetSdkVersion =14/><应用
    机器人:allowBackup =真
    机器人:图标=@绘制/ ic_launcher
    机器人:标签=@字符串/ APP_NAME
    机器人:主题=@风格/ AppTheme>
    <活动
        机器人:名字=。MainActivity
        机器人:标签=@字符串/ APP_NAME>
        &所述;意图滤光器>
            <作用机器人:名字=android.intent.action.MAIN/>            <类机器人:名字=android.intent.category.LAUNCHER/>
        &所述; /意图滤光器>
    < /活性GT;
< /用途>< /清单>

我看了下面的教程创建这个类:

教程点

logcat的错误显示如下:

  08-30 16:09:23.810:E / AndroidRuntime(296):致命异常:主要
08-30 16:09:23.810:E / AndroidRuntime(296):java.lang.NoClassDefFoundError的:android.content.ClipboardManager
08-30 16:09:23.810:E / AndroidRuntime(296):在com.example.clipboarddemo.MainActivity.onCreate(MainActivity.java:26)
08-30 16:09:23.810:E / AndroidRuntime(296):在android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
08-30 16:09:23.810:E / AndroidRuntime(296):在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627)
08-30 16:09:23.810:E / AndroidRuntime(296):在android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679)
08-30 16:09:23.810:E / AndroidRuntime(296):在android.app.ActivityThread.access $ 2300(ActivityThread.java:125)
08-30 16:09:23.810:E / AndroidRuntime(296):在android.app.ActivityThread $ H.handleMessage(ActivityThread.java:2033)
08-30 16:09:23.810:E / AndroidRuntime(296):在android.os.Handler.dispatchMessage(Handler.java:99)
08-30 16:09:23.810:E / AndroidRuntime(296):在android.os.Looper.loop(Looper.java:123)
08-30 16:09:23.810:E / AndroidRuntime(296):在android.app.ActivityThread.main(ActivityThread.java:4627)
08-30 16:09:23.810:E / AndroidRuntime(296):在java.lang.reflect.Method.invokeNative(本机方法)
08-30 16:09:23.810:E / AndroidRuntime(296):在java.lang.reflect.Method.invoke(Method.java:521)
08-30 16:09:23.810:E / AndroidRuntime(296):在com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:868)
08-30 16:09:23.810:E / AndroidRuntime(296):在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
08-30 16:09:23.810:E / AndroidRuntime(296):在dalvik.system.NativeStart.main(本机方法)
08-30 16:09:23.870:W / ActivityManager(59):强制完成活动com.example.clipboarddemo / .MainActivity
08-30 16:09:24.862:W / ActivityManager(59):活动暂停超时HistoryRecord {4a2d49e0 com.example.clipboarddemo / .MainActivity}
08-30 16:09:25.060:I / ActivityManager(59):显示活动com.android.launcher / com.android.launcher2.Launcher:44069毫秒(共44069毫秒)
08-30 16:09:35.673:W / ActivityManager(59):活动破坏超时HistoryRecord {4a2d49e0 com.example.clipboarddemo / .MainActivity}
08-30 16:10:53.140:D / KeyguardViewMediator(59):pokeWakelock(5000)
08-30 16:10:53.320:D / KeyguardViewMediator(59):pokeWakelock(5000)
08-30 16:10:53.690:W /窗口管理器(59):无窗口调度指针动作1
08-30 16:10:54.370:I / ARMAssembler(59):产生scanline__00000077:在602296 NS:03515104_00000000_00000000在[0x577acc 0x577a10] [33 IPP(47项)
08-30 16:10:56.640:I /流程(296):发送信号。 PID:296 SIG:9
08-30 16:10:56.660:I / ActivityManager(59):过程com.example.clipboarddemo(PID 296)已经死亡。
08-30 16:10:57.070:I / ARMAssembler(59):产生scanline__00000177:在866708 NS:03515104_00001001_00000000在[0x577c98 0x577ad0] [91 IPP(114项)


解决方案

由于 android.content.ClipboardManager 可以在Android 3.0.x和上面你不能运行Android 2.2的。这就是为什么你越来越的NoClassDefFoundError 例外。

如果你想在Android 2.3.x版本及以下,我建议你使用使用剪贴板 android.text.ClipboardManager

我希望这有助于

I have simple Clipboard Manager Activity Which Copy And Paste The Data From on EditText To next EditText box but The Activity Not Starting

My MainActivity is As Follows:

package com.example.clipboarddemo;

import android.annotation.SuppressLint;
import android.app.Activity;
import android.content.ClipData;
import android.content.ClipboardManager;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.widget.EditText;
import android.widget.Toast;

public class MainActivity extends Activity {

private ClipboardManager mClipboardManager;
private ClipData myClip;
private EditText copyField,pasteField;



@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    mClipboardManager=(ClipboardManager)getSystemService(CLIPBOARD_SERVICE);
    copyField=(EditText)findViewById(R.id.editText1);
    pasteField=(EditText)findViewById(R.id.editText2);

}

@SuppressLint("NewApi")
public void copy(View view){
    String text=copyField.getText().toString();
    myClip=ClipData.newPlainText("text", text);
    mClipboardManager.setPrimaryClip(myClip);
    Toast.makeText(getApplicationContext(), "Text Copied",Toast.LENGTH_SHORT).show();

}

@SuppressLint("NewApi")
public void paste(View view){
    ClipData abc=mClipboardManager.getPrimaryClip();
    ClipData.Item item=abc.getItemAt(0);
    String text=item.getText().toString();
    pasteField.setText(text);
    Toast.makeText(getApplicationContext(),"Text Pasted",Toast.LENGTH_SHORT).show();
}

@Override
public boolean onCreateOptionsMenu(Menu menu){
    getMenuInflater().inflate(R.menu.main, menu);
    return true;
}

}

and AndroidManifest.xml file is:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.clipboarddemo"
android:versionCode="1"
android:versionName="1.0" >

<uses-sdk
    android:minSdkVersion="8"
    android:targetSdkVersion="14" />

<application
    android:allowBackup="true"
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >
    <activity
        android:name=".MainActivity"
        android:label="@string/app_name" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
</application>

</manifest>

I have Read the Following Tutorial To Create This Class:

Tutorials Point

Logcat error is showing as follows:

    08-30 16:09:23.810: E/AndroidRuntime(296): FATAL EXCEPTION: main
08-30 16:09:23.810: E/AndroidRuntime(296): java.lang.NoClassDefFoundError: android.content.ClipboardManager
08-30 16:09:23.810: E/AndroidRuntime(296):  at com.example.clipboarddemo.MainActivity.onCreate(MainActivity.java:26)
08-30 16:09:23.810: E/AndroidRuntime(296):  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
08-30 16:09:23.810: E/AndroidRuntime(296):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627)
08-30 16:09:23.810: E/AndroidRuntime(296):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679)
08-30 16:09:23.810: E/AndroidRuntime(296):  at android.app.ActivityThread.access$2300(ActivityThread.java:125)
08-30 16:09:23.810: E/AndroidRuntime(296):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033)
08-30 16:09:23.810: E/AndroidRuntime(296):  at android.os.Handler.dispatchMessage(Handler.java:99)
08-30 16:09:23.810: E/AndroidRuntime(296):  at android.os.Looper.loop(Looper.java:123)
08-30 16:09:23.810: E/AndroidRuntime(296):  at android.app.ActivityThread.main(ActivityThread.java:4627)
08-30 16:09:23.810: E/AndroidRuntime(296):  at java.lang.reflect.Method.invokeNative(Native Method)
08-30 16:09:23.810: E/AndroidRuntime(296):  at java.lang.reflect.Method.invoke(Method.java:521)
08-30 16:09:23.810: E/AndroidRuntime(296):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
08-30 16:09:23.810: E/AndroidRuntime(296):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
08-30 16:09:23.810: E/AndroidRuntime(296):  at dalvik.system.NativeStart.main(Native Method)
08-30 16:09:23.870: W/ActivityManager(59):   Force finishing activity com.example.clipboarddemo/.MainActivity
08-30 16:09:24.862: W/ActivityManager(59): Activity pause timeout for HistoryRecord{4a2d49e0 com.example.clipboarddemo/.MainActivity}
08-30 16:09:25.060: I/ActivityManager(59): Displayed activity com.android.launcher/com.android.launcher2.Launcher: 44069 ms (total 44069 ms)
08-30 16:09:35.673: W/ActivityManager(59): Activity destroy timeout for HistoryRecord{4a2d49e0 com.example.clipboarddemo/.MainActivity}
08-30 16:10:53.140: D/KeyguardViewMediator(59): pokeWakelock(5000)
08-30 16:10:53.320: D/KeyguardViewMediator(59): pokeWakelock(5000)
08-30 16:10:53.690: W/WindowManager(59): No window to dispatch pointer action 1
08-30 16:10:54.370: I/ARMAssembler(59): generated scanline__00000077:03515104_00000000_00000000 [ 33 ipp] (47 ins) at [0x577a10:0x577acc] in 602296 ns
08-30 16:10:56.640: I/Process(296): Sending signal. PID: 296 SIG: 9
08-30 16:10:56.660: I/ActivityManager(59): Process com.example.clipboarddemo (pid 296) has died.
08-30 16:10:57.070: I/ARMAssembler(59): generated scanline__00000177:03515104_00001001_00000000 [ 91 ipp] (114 ins) at [0x577ad0:0x577c98] in 866708 ns

解决方案

Since android.content.ClipboardManager is available on Android 3.0.x and above you cannot run it on Android 2.2. That is why you are getting NoClassDefFoundError exception.

If you want to use ClipBoard on Android 2.3.x and below I suggest that you use android.text.ClipboardManager

I hope that it helps

这篇关于剪贴板管理活动中的Andr​​oid不工作的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆