android nullable jar,“Android.Annotation.NonNull”在“Android.Annotation”中不是公共得。无法从外部包访问。 “Nullable”也相同...

2023-05-16

我收到以下警告:“Android.Annotation.NonNull”在“Android.Annotation”中不是公共的。无法从外部包访问

“Android.Annotation.Nullable”在“Android.Annotation”中不是公共得。 无法从外部包访问。

我还收到此警告:无法解析符号“UnsupportedAppusage”。

我尝试了这两个导入,基于线程'android.annotation.nonnull'在'android.annotation‘中不是公共的建议。 无法从外部包访问,但它们没有帮助。import androidx.annotation.NonNull;

import androidx.annotation.Nullable;

下面是我在handler.java-file中的全部代码(我去掉了所有注释):package android.os;

import androidx.annotation.NonNull;

import androidx.annotation.*;

import androidx.annotation.Nullable;

import androidx.annotation.UnsupportedAppUsage;

import android.util.Log;

import android.util.Printer;

import java.lang.reflect.Modifier;

public class Handler {

private static final boolean FIND_POTENTIAL_LEAKS = false;

private static final String TAG = "Handler";

private static Handler MAIN_THREAD_HANDLER = null;

public interface Callback {

boolean handleMessage(@NonNull Message msg);

}

public void handleMessage(@NonNull Message msg) {

}

public void dispatchMessage(@NonNull Message msg) {

if (msg.callback != null) {

handleCallback(msg);

} else {

if (mCallback != null) {

if (mCallback.handleMessage(msg)) {

return;

}

}

handleMessage(msg);

}

}

public Handler() {

this(null, false);

}

public Handler(@Nullable Callback callback) {

this(callback, false);

}

public Handler(@NonNull Looper looper) {

this(looper, null, false);

}

public Handler(@NonNull Looper looper, @Nullable Callback callback) {

this(looper, callback, false);

}

@UnsupportedAppUsage

public Handler(boolean async) {

this(null, async);

}

public Handler(@Nullable Callback callback, boolean async) {

if (FIND_POTENTIAL_LEAKS) {

final Class extends Handler> klass = getClass();

if ((klass.isAnonymousClass() || klass.isMemberClass() || klass.isLocalClass()) &&

(klass.getModifiers() & Modifier.STATIC) == 0) {

Log.w(TAG, "The following Handler class should be static or leaks might occur: " +

klass.getCanonicalName());

}

}

mLooper = Looper.myLooper();

if (mLooper == null) {

throw new RuntimeException(

"Can't create handler inside thread " + Thread.currentThread()

+ " that has not called Looper.prepare()");

}

mQueue = mLooper.mQueue;

mCallback = callback;

mAsynchronous = async;

}

@UnsupportedAppUsage

public Handler(@NonNull Looper looper, @Nullable Callback callback, boolean async) {

mLooper = looper;

mQueue = looper.mQueue;

mCallback = callback;

mAsynchronous = async;

}

@NonNull

public static Handler createAsync(@NonNull Looper looper) {

if (looper == null) throw new NullPointerException("looper must not be null");

return new Handler(looper, null, true);

}

@NonNull

public static Handler createAsync(@NonNull Looper looper, @NonNull Callback callback) {

if (looper == null) throw new NullPointerException("looper must not be null");

if (callback == null) throw new NullPointerException("callback must not be null");

return new Handler(looper, callback, true);

}

@UnsupportedAppUsage

@NonNull

public static Handler getMain() {

if (MAIN_THREAD_HANDLER == null) {

MAIN_THREAD_HANDLER = new Handler(Looper.getMainLooper());

}

return MAIN_THREAD_HANDLER;

}

@NonNull

public static Handler mainIfNull(@Nullable Handler handler) {

return handler == null ? getMain() : handler;

}

@NonNull

public String getTraceName(@NonNull Message message) {

final StringBuilder sb = new StringBuilder();

sb.append(getClass().getName()).append(": ");

if (message.callback != null) {

sb.append(message.callback.getClass().getName());

} else {

sb.append("#").append(message.what);

}

return sb.toString();

}

@NonNull

public String getMessageName(@NonNull Message message) {

if (message.callback != null) {

return message.callback.getClass().getName();

}

return "0x" + Integer.toHexString(message.what);

}

@NonNull

public final Message obtainMessage()

{

return Message.obtain(this);

}

@NonNull

public final Message obtainMessage(int what)

{

return Message.obtain(this, what);

}

@NonNull

public final Message obtainMessage(int what, @Nullable Object obj) {

return Message.obtain(this, what, obj);

}

@NonNull

public final Message obtainMessage(int what, int arg1, int arg2)

{

return Message.obtain(this, what, arg1, arg2);

}

@NonNull

public final Message obtainMessage(int what, int arg1, int arg2, @Nullable Object obj) {

return Message.obtain(this, what, arg1, arg2, obj);

}

public final boolean post(@NonNull Runnable r) {

return sendMessageDelayed(getPostMessage(r), 0);

}

public final boolean postAtTime(@NonNull Runnable r, long uptimeMillis) {

return sendMessageAtTime(getPostMessage(r), uptimeMillis);

}

public final boolean postAtTime(

@NonNull Runnable r, @Nullable Object token, long uptimeMillis) {

return sendMessageAtTime(getPostMessage(r, token), uptimeMillis);

}

public final boolean postDelayed(@NonNull Runnable r, long delayMillis) {

return sendMessageDelayed(getPostMessage(r), delayMillis);

}

public final boolean postDelayed(Runnable r, int what, long delayMillis) {

return sendMessageDelayed(getPostMessage(r).setWhat(what), delayMillis);

}

public final boolean postDelayed(

@NonNull Runnable r, @Nullable Object token, long delayMillis) {

return sendMessageDelayed(getPostMessage(r, token), delayMillis);

}

public final boolean postAtFrontOfQueue(@NonNull Runnable r) {

return sendMessageAtFrontOfQueue(getPostMessage(r));

}

public final boolean runWithScissors(@NonNull Runnable r, long timeout) {

if (r == null) {

throw new IllegalArgumentException("runnable must not be null");

}

if (timeout < 0) {

throw new IllegalArgumentException("timeout must be non-negative");

}

if (Looper.myLooper() == mLooper) {

r.run();

return true;

}

BlockingRunnable br = new BlockingRunnable(r);

return br.postAndWait(this, timeout);

}

public final void removeCallbacks(@NonNull Runnable r) {

mQueue.removeMessages(this, r, null);

}

public final void removeCallbacks(@NonNull Runnable r, @Nullable Object token) {

mQueue.removeMessages(this, r, token);

}

public final boolean sendMessage(@NonNull Message msg) {

return sendMessageDelayed(msg, 0);

}

public final boolean sendEmptyMessage(int what)

{

return sendEmptyMessageDelayed(what, 0);

}

public final boolean sendEmptyMessageDelayed(int what, long delayMillis) {

Message msg = Message.obtain();

msg.what = what;

return sendMessageDelayed(msg, delayMillis);

}

public final boolean sendEmptyMessageAtTime(int what, long uptimeMillis) {

Message msg = Message.obtain();

msg.what = what;

return sendMessageAtTime(msg, uptimeMillis);

}

public final boolean sendMessageDelayed(@NonNull Message msg, long delayMillis) {

if (delayMillis < 0) {

delayMillis = 0;

}

return sendMessageAtTime(msg, SystemClock.uptimeMillis() + delayMillis);

}

public boolean sendMessageAtTime(@NonNull Message msg, long uptimeMillis) {

MessageQueue queue = mQueue;

if (queue == null) {

RuntimeException e = new RuntimeException(

this + " sendMessageAtTime() called with no mQueue");

Log.w("Looper", e.getMessage(), e);

return false;

}

return enqueueMessage(queue, msg, uptimeMillis);

}

public final boolean sendMessageAtFrontOfQueue(@NonNull Message msg) {

MessageQueue queue = mQueue;

if (queue == null) {

RuntimeException e = new RuntimeException(

this + " sendMessageAtTime() called with no mQueue");

Log.w("Looper", e.getMessage(), e);

return false;

}

return enqueueMessage(queue, msg, 0);

}

public final boolean executeOrSendMessage(@NonNull Message msg) {

if (mLooper == Looper.myLooper()) {

dispatchMessage(msg);

return true;

}

return sendMessage(msg);

}

private boolean enqueueMessage(@NonNull MessageQueue queue, @NonNull Message msg,

long uptimeMillis) {

msg.target = this;

msg.workSourceUid = ThreadLocalWorkSource.getUid();

if (mAsynchronous) {

msg.setAsynchronous(true);

}

return queue.enqueueMessage(msg, uptimeMillis);

}

public final void removeMessages(int what) {

mQueue.removeMessages(this, what, null);

}

public final void removeMessages(int what, @Nullable Object object) {

mQueue.removeMessages(this, what, object);

}

public final void removeCallbacksAndMessages(@Nullable Object token) {

mQueue.removeCallbacksAndMessages(this, token);

}

public final boolean hasMessages(int what) {

return mQueue.hasMessages(this, what, null);

}

public final boolean hasMessagesOrCallbacks() {

return mQueue.hasMessages(this);

}

public final boolean hasMessages(int what, @Nullable Object object) {

return mQueue.hasMessages(this, what, object);

}

public final boolean hasCallbacks(@NonNull Runnable r) {

return mQueue.hasMessages(this, r, null);

}

@NonNull

public final Looper getLooper() {

return mLooper;

}

public final void dump(@NonNull Printer pw, @NonNull String prefix) {

pw.println(prefix + this + " @ " + SystemClock.uptimeMillis());

if (mLooper == null) {

pw.println(prefix + "looper uninitialized");

} else {

mLooper.dump(pw, prefix + " ");

}

}

public final void dumpMine(@NonNull Printer pw, @NonNull String prefix) {

pw.println(prefix + this + " @ " + SystemClock.uptimeMillis());

if (mLooper == null) {

pw.println(prefix + "looper uninitialized");

} else {

mLooper.dump(pw, prefix + " ", this);

}

}

@Override

public String toString() {

return "Handler (" + getClass().getName() + ") {"

+ Integer.toHexString(System.identityHashCode(this))

+ "}";

}

@UnsupportedAppUsage

final IMessenger getIMessenger() {

synchronized (mQueue) {

if (mMessenger != null) {

return mMessenger;

}

mMessenger = new MessengerImpl();

return mMessenger;

}

}

private final class MessengerImpl extends IMessenger.Stub {

public void send(Message msg) {

msg.sendingUid = Binder.getCallingUid();

Handler.this.sendMessage(msg);

}

}

private static Message getPostMessage(Runnable r) {

Message m = Message.obtain();

m.callback = r;

return m;

}

@UnsupportedAppUsage

private static Message getPostMessage(Runnable r, Object token) {

Message m = Message.obtain();

m.obj = token;

m.callback = r;

return m;

}

private static void handleCallback(Message message) {

message.callback.run();

}

@UnsupportedAppUsage

final Looper mLooper;

final MessageQueue mQueue;

@UnsupportedAppUsage

final Callback mCallback;

final boolean mAsynchronous;

@UnsupportedAppUsage

IMessenger mMessenger;

private static final class BlockingRunnable implements Runnable {

private final Runnable mTask;

private boolean mDone;

public BlockingRunnable(Runnable task) {

mTask = task;

}

@Override

public void run() {

try {

mTask.run();

} finally {

synchronized (this) {

mDone = true;

notifyAll();

}

}

}

public boolean postAndWait(Handler handler, long timeout) {

if (!handler.post(this)) {

return false;

}

synchronized (this) {

if (timeout > 0) {

final long expirationTime = SystemClock.uptimeMillis() + timeout;

while (!mDone) {

long delay = expirationTime - SystemClock.uptimeMillis();

if (delay <= 0) {

return false; // timeout

}

try {

wait(delay);

} catch (InterruptedException ex) {

}

}

} else {

while (!mDone) {

try {

wait();

} catch (InterruptedException ex) {

}

}

}

}

return true;

}

}

}

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

android nullable jar,“Android.Annotation.NonNull”在“Android.Annotation”中不是公共得。无法从外部包访问。 “Nullable”也相同... 的相关文章

随机推荐