web-dev-qa-db-ja.com

エラー:パッケージcom.Android.annotationsが存在しません

次のクラスがあります

import com.Android.annotations.NonNullByDefault;

@NonNullByDefault
public final class Log {
    ...
}

そしてこれが私のbuild.gradleファイルです(一部は省略されています)

apply plugin: 'com.Android.application'

Android {
    compileSdkVersion 25
    buildToolsVersion '24.0.1'

    defaultConfig {
        minSdkVersion 16
        targetSdkVersion 25
        versionCode 2
        versionName "0.2"
    }

    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_7
        targetCompatibility JavaVersion.VERSION_1_7
    }

}

dependencies {    
    compile 'com.Android.support:appcompat-v7:25.0.0'
    compile 'com.Android.support:support-annotations:25.0.0'
    compile 'com.Android.support:design:25.0.0'
}

Android Studioでは、私のクラスに対して警告は出されません

enter image description here

ただし、アプリをビルドして実行しようとすると、gradleからこのエラーが発生します

Information:Gradle tasks [:app:clean, :app:generateDebugSources, :app:generateDebugAndroidTestSources, :app:mockableAndroidJar, :app:prepareDebugUnitTestDependencies, :app:assembleDebug]
Warning:[options] bootstrap class path not set in conjunction with -source 1.7
/home/puter/git-repos/TaskManager3/app/src/main/Java/com/treemetrics/taskmanager3/util/Log.Java
Error:(3, 31) error: package com.Android.annotations does not exist
Error:(7, 2) error: cannot find symbol class NonNullByDefault
Error:Execution failed for task ':app:compileDebugJavaWithJavac'.
> Compilation failed; see the compiler error output for details.
Information:BUILD FAILED
Information:Total time: 21.021 secs
Information:3 errors
Information:1 warning
Information:See complete output in console
43
Moses

Android androidxの問題をReact Native、(Prerequisite npx)に対して自動的に修正するには

ProjectFolder/Android/gradle.propertiesにあるgradle.propertiesファイルで、次の2つのフラグをtrueに追加します

Android.useAndroidX=true
Android.enableJetifier=true

Execute

npm install --save-dev jetifier
npx jetify
npx react-native run-Android

Package.jsonで、スクリプトに以下を追加します

  "postinstall" : "npx jetify"

詳細情報 https://github.com/mikehardy/jetifier

更新:これは現在、react-native 0.60に組み込まれています。反応ネイティブ0.60に移行する場合、この手順は必要ありません。 - https://facebook.github.io/react-native/blog/2019/07/03/version-60#androidx-support

83
Pavan Garre

実装を使用androidx.appcompat:appcompat:1.0.2グラドル、次に

変化する import Android.support.annotation.Nullable;からimport androidx.annotation.NonNull;クラスのインポート

19
Sarthak Singhal

開いた gradle.propertiesおよび次のコードを使用します。

Android.useAndroidX=false
Android.enableJetifier=false

または、これらの依存関係も使用できます。

implementation 'androidx.appcompat:appcompat:1.0.2'
 implementation 'androidx.annotation:annotation:1.0.2'
12
Behrouz.M

Androidxへの移行時に同様の問題が発生しました。

以下の2行をgradle.propertiesに追加しても問題が解決しない場合

Android.useAndroidX=true
Android.enableJetifier=true

次に試してください

  1. Android Studio 3.2以降では、Refactor> Migrate to AndroidXを選択して、既存のプロジェクトをAndroidXに移行できます。メニューバー( developer.Android.com

それでも移行で問題が発生する場合は、問題の原因となっているライブラリを手動で交換してください。

Android.support.annotation.NonNullに問題がある場合は、以下のクラスマッピングの表に示すように、androidx.annotation.NonNullに変更してください。

クラスマッピング

Mavenアーティファクトマッピング

7
user44776

私の場合、私は使用しなければなりませんでした

import androidx.annotation...

の代わりに

import Android.annotation...

AndroidXに移行しましたが、変更するのを忘れていました。

3
ribbit

heresupport-annotationslibraryの公式javadocを見つけることができます。

エラー:(3、31)エラー:パッケージcom.Android.annotationsが存在しません

ご覧のとおり、すべてのクラスは同じパッケージAndroid.support.annotationにあり、com.Android.annotationsではありません。

エラー:(7、2)エラー:シンボルクラスNonNullByDefaultが見つかりません

また、クラスNonNullByDefaultはそのパッケージに存在しません

2

Androidxへの移行時に同様の問題がありました。この問題は、Old Butter Knifeライブラリの依存関係が原因で発生します。

バターナイフを使用している場合は、少なくともバターナイフバージョン9.0.0-SNAPSHOT以降を使用する必要があります。

implementation 'com.jakewharton:butterknife:9.0.0-SNAPSHOT' annotationProcessor 'com.jakewharton:butterknife-compiler:9.0.0-SNAPSHOT'

2
Abhijeet Sharma

注釈は、support's libraryにパッケージ化されているAndroid.support.annotationから取得されます。

別のオプションとして、パラメータ、フィールド、またはメソッドの戻り値がnullになることは決してないことを示す@NonNullアノテーションを使用できます。
これはimport Android.support.annotation.NonNull;からインポートされます

2
Sanjeet

手動でコードを編集しないでくださいjetifyreact-nativeを使用してCLIから実行/ビルドしている場合は、このジョブを実行する必要があります'何もする必要がありますが、Andriodスタジオを実行/ビルドしている場合は、ビルド前にjetifyを実行する必要があります。これを自動化する方法を次に示します。

1-上記のメニューから設定を編集します:

enter image description here

2-起動する前に見つけた画面の下部を追加しますプラスをクリックしてRun External Tool

enter image description here

2-次の情報を入力します。作業ディレクトリはプロジェクトのルートディレクトリです(Androidディレクトリではありません)。

enter image description here

3-これが何よりも先に実行されることを確認してください。最終的に、構成は次のようになります。 enter image description here

1

クラスインポートの「import Android.support.annotation.Nullable」を「import androidx.annotation.Nullable;」に置き換えるだけです。

これは一般的な方法です。インポート時に問題が発生する場合はいつでも、そのインポートを削除し、関連するクラスでAlt + Enterを押すだけです。 。

バターナイフの自動生成ファイルからのエラーの場合、バターナイフの依存バージョンを更新する

implementation 'com.jakewharton:butterknife:10.0.0'
annotationProcessor 'com.jakewharton:butterknife-compiler:10.0.0'
0
Amar Singh

私にとってはnpmの古いバージョンでした。

npm install npm@latest -gを実行してからnpm installを実行します

0
Muzikant