androidcodenameone

Picker, ContactsModel & UIBuilder Warnings in Android Studio Local Builds


In Codename One version 7.0.210, Android Studio is detecting the following warnings when building debug & release apps.


/{project path}/myapp/android/target/myapp-android-1.0-SNAPSHOT-android-source/app/src/main/java/com/codename1/ui/spinner/Picker.java:190: warning: non-varargs call of varargs method with inexact argument type for last parameter;
                            gs.setModel(new DefaultListModel(strArr));
                                                             ^
  cast to Object for a varargs call
  cast to Object[] for a non-varargs call and to suppress this warning
/{project path}/myapp/android/target/myapp-android-1.0-SNAPSHOT-android-source/app/src/main/java/com/codename1/contacts/ContactsModel.java:49: warning: non-varargs call of varargs method with inexact argument type for last parameter;
        super(ids);
              ^
  cast to Object for a varargs call
  cast to Object[] for a non-varargs call and to suppress this warning
/{project path}/myapp/android/target/myapp-android-1.0-SNAPSHOT-android-source/app/src/main/java/com/codename1/ui/util/UIBuilder.java:1418: warning: non-varargs call of varargs method with inexact argument type for last parameter;
                        ((List) cmp).setModel(new DefaultListModel(items));
                                                                   ^
  cast to Object for a varargs call
  cast to Object[] for a non-varargs call and to suppress this warning

The following is the complete build log when using version 7.0.210


Executing tasks: [:app:assembleDebug, :app:assembleDebugUnitTest, :app:assembleDebugAndroidTest] in project /{project path}/myapp/android/target/myapp-android-1.0-SNAPSHOT-android-source


> Configure project :app
AGPBI: {"kind":"warning","text":"DSL element 'dexOptions' is obsolete and should be removed.\nIt will be removed in version 8.0 of the Android Gradle plugin.\nUsing it has no effect, and the AndroidGradle plugin optimizes dexing automatically.","sources":[{}]}
AGPBI: {"kind":"warning","text":"Using flatDir should be avoided because it doesn't support any meta-data formats.","sources":[{}]}
AGPBI: {"kind":"warning","text":"We recommend using a newer Android Gradle plugin to use compileSdk = 36\n\nThis Android Gradle plugin (8.1.0) was tested up to compileSdk = 33 (and compileSdkPreview = \"UpsideDownCakePrivacySandbox\").\n\nYou are strongly encouraged to update your project to use a newer\nAndroid Gradle plugin that has been tested with compileSdk = 36.\n\nIf you are already using the latest version of the Android Gradle plugin,\nyou may need to wait until a newer version with support for compileSdk = 36 is available.\n\nTo suppress this warning, add/update\n    android.suppressUnsupportedCompileSdk=36\nto this project's gradle.properties.","sources":[{}]}

> Task :app:createDebugVariantModel
> Task :app:preBuild UP-TO-DATE
> Task :app:preDebugBuild UP-TO-DATE
> Task :app:mergeDebugNativeDebugMetadata NO-SOURCE
> Task :app:compileDebugAidl NO-SOURCE
> Task :app:javaPreCompileDebug
> Task :app:generateDebugResValues
> Task :app:checkDebugAarMetadata
> Task :app:mapDebugSourceSetPaths
> Task :app:generateDebugResources
> Task :app:packageDebugResources
> Task :app:parseDebugLocalResources
> Task :app:mergeDebugResources
> Task :app:createDebugCompatibleScreenManifests
> Task :app:extractDeepLinksDebug

> Task :app:processDebugMainManifest
package="com.example.myapp" found in source AndroidManifest.xml: /{project path}/myapp/android/target/myapp-android-1.0-SNAPSHOT-android-source/app/src/main/AndroidManifest.xml.
Setting the namespace via the package attribute in the source AndroidManifest.xml is no longer supported, and the value is ignored.
Recommendation: remove package="com.example.myapp" from the source AndroidManifest.xml: /{project path}/myapp/android/target/myapp-android-1.0-SNAPSHOT-android-source/app/src/main/AndroidManifest.xml.

> Task :app:processDebugManifest
> Task :app:mergeDebugShaders
> Task :app:processDebugManifestForPackage
> Task :app:compileDebugShaders NO-SOURCE
> Task :app:generateDebugAssets UP-TO-DATE
> Task :app:mergeDebugAssets
> Task :app:compressDebugAssets
> Task :app:processDebugJavaRes NO-SOURCE
> Task :app:processDebugResources
> Task :app:mergeDebugJavaResource
> Task :app:compileDebugJavaWithJavac
/{project path}/myapp/android/target/myapp-android-1.0-SNAPSHOT-android-source/app/src/main/java/com/codename1/ui/spinner/Picker.java:190: warning: non-varargs call of varargs method with inexact argument type for last parameter;
                            gs.setModel(new DefaultListModel(strArr));
                                                             ^
  cast to Object for a varargs call
  cast to Object[] for a non-varargs call and to suppress this warning
/{project path}/myapp/android/target/myapp-android-1.0-SNAPSHOT-android-source/app/src/main/java/com/codename1/contacts/ContactsModel.java:49: warning: non-varargs call of varargs method with inexact argument type for last parameter;
        super(ids);
              ^
  cast to Object for a varargs call
  cast to Object[] for a non-varargs call and to suppress this warning
/{project path}/myapp/android/target/myapp-android-1.0-SNAPSHOT-android-source/app/src/main/java/com/codename1/ui/util/UIBuilder.java:1418: warning: non-varargs call of varargs method with inexact argument type for last parameter;
                        ((List) cmp).setModel(new DefaultListModel(items));
                                                                   ^
  cast to Object for a varargs call
  cast to Object[] for a non-varargs call and to suppress this warning
Note: Some input files use or override a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
Note: Some input files use unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
3 warnings

> Task :app:checkDebugDuplicateClasses
> Task :app:desugarDebugFileDependencies
> Task :app:dexBuilderDebug
> Task :app:mergeDebugJniLibFolders
> Task :app:mergeDebugNativeLibs NO-SOURCE
> Task :app:stripDebugDebugSymbols NO-SOURCE
> Task :app:validateSigningDebug
> Task :app:writeDebugAppMetadata
> Task :app:writeDebugSigningConfigVersions
> Task :app:assembleDebugUnitTest UP-TO-DATE
> Task :app:mergeDexDebug
> Task :app:bundleDebugClassesToCompileJar
> Task :app:preDebugAndroidTestBuild SKIPPED
> Task :app:compileDebugAndroidTestAidl NO-SOURCE
> Task :app:javaPreCompileDebugAndroidTest
> Task :app:checkDebugAndroidTestAarMetadata
> Task :app:generateDebugAndroidTestResValues
> Task :app:mapDebugAndroidTestSourceSetPaths
> Task :app:generateDebugAndroidTestResources
> Task :app:mergeDebugAndroidTestResources
> Task :app:processDebugAndroidTestManifest
> Task :app:processDebugAndroidTestResources

> Task :app:compileDebugAndroidTestJavaWithJavac
Note: /{project path}/myapp/android/target/myapp-android-1.0-SNAPSHOT-android-source/app/src/androidTest/java/com/example/myapplication2/ExampleInstrumentedTest.java uses or overrides a deprecated API.
Note: Recompile with -Xlint:deprecation for details.

> Task :app:packageDebug
> Task :app:createDebugApkListingFileRedirect
> Task :app:assembleDebug
> Task :app:mergeDebugAndroidTestShaders
> Task :app:compileDebugAndroidTestShaders NO-SOURCE
> Task :app:generateDebugAndroidTestAssets UP-TO-DATE
> Task :app:mergeDebugAndroidTestAssets
> Task :app:compressDebugAndroidTestAssets
> Task :app:processDebugAndroidTestJavaRes NO-SOURCE
> Task :app:mergeDebugAndroidTestJniLibFolders
> Task :app:mergeDebugAndroidTestNativeLibs NO-SOURCE
> Task :app:checkDebugAndroidTestDuplicateClasses
> Task :app:mergeDebugAndroidTestJavaResource
> Task :app:desugarDebugAndroidTestFileDependencies
> Task :app:dexBuilderDebugAndroidTest
> Task :app:validateSigningDebugAndroidTest
> Task :app:writeDebugAndroidTestSigningConfigVersions
> Task :app:mergeDexDebugAndroidTest
> Task :app:packageDebugAndroidTest
> Task :app:createDebugAndroidTestApkListingFileRedirect
> Task :app:assembleDebugAndroidTest

Deprecated Gradle features were used in this build, making it incompatible with Gradle 9.0.

You can use '--warning-mode all' to show the individual deprecation warnings and determine if they come from your own scripts or plugins.

See https://docs.gradle.org/8.1/userguide/command_line_interface.html#sec:command_line_warnings

BUILD SUCCESSFUL in 3m 44s
51 actionable tasks: 51 executed

Build Analyzer results available

The following is the complete build log when using version 7.0.207

Executing tasks: [:app:assembleDebug, :app:assembleDebugUnitTest, :app:assembleDebugAndroidTest] in project /{project path}/myapp/android/target/myapp-android-1.0-SNAPSHOT-android-source


> Configure project :app
AGPBI: {"kind":"warning","text":"DSL element 'dexOptions' is obsolete and should be removed.\nIt will be removed in version 8.0 of the Android Gradle plugin.\nUsing it has no effect, and the AndroidGradle plugin optimizes dexing automatically.","sources":[{}]}
AGPBI: {"kind":"warning","text":"Using flatDir should be avoided because it doesn't support any meta-data formats.","sources":[{}]}
AGPBI: {"kind":"warning","text":"We recommend using a newer Android Gradle plugin to use compileSdk = 36\n\nThis Android Gradle plugin (8.1.0) was tested up to compileSdk = 33 (and compileSdkPreview = \"UpsideDownCakePrivacySandbox\").\n\nYou are strongly encouraged to update your project to use a newer\nAndroid Gradle plugin that has been tested with compileSdk = 36.\n\nIf you are already using the latest version of the Android Gradle plugin,\nyou may need to wait until a newer version with support for compileSdk = 36 is available.\n\nTo suppress this warning, add/update\n    android.suppressUnsupportedCompileSdk=36\nto this project's gradle.properties.","sources":[{}]}

> Task :app:createDebugVariantModel
> Task :app:preBuild UP-TO-DATE
> Task :app:preDebugBuild UP-TO-DATE
> Task :app:mergeDebugNativeDebugMetadata NO-SOURCE
> Task :app:compileDebugAidl NO-SOURCE
> Task :app:javaPreCompileDebug
> Task :app:generateDebugResValues
> Task :app:checkDebugAarMetadata
> Task :app:mapDebugSourceSetPaths
> Task :app:generateDebugResources
> Task :app:packageDebugResources
> Task :app:mergeDebugResources
> Task :app:createDebugCompatibleScreenManifests
> Task :app:extractDeepLinksDebug
> Task :app:parseDebugLocalResources

> Task :app:processDebugMainManifest
package="com.example.myapp" found in source AndroidManifest.xml: /{project path}/myapp/android/target/myapp-android-1.0-SNAPSHOT-android-source/app/src/main/AndroidManifest.xml.
Setting the namespace via the package attribute in the source AndroidManifest.xml is no longer supported, and the value is ignored.
Recommendation: remove package="com.example.myapp" from the source AndroidManifest.xml: /{project path}/myapp/android/target/myapp-android-1.0-SNAPSHOT-android-source/app/src/main/AndroidManifest.xml.

> Task :app:processDebugManifest
> Task :app:mergeDebugShaders
> Task :app:processDebugManifestForPackage
> Task :app:compileDebugShaders NO-SOURCE
> Task :app:generateDebugAssets UP-TO-DATE
> Task :app:mergeDebugAssets
> Task :app:compressDebugAssets
> Task :app:processDebugJavaRes NO-SOURCE
> Task :app:processDebugResources
> Task :app:mergeDebugJavaResource
> Task :app:compileDebugJavaWithJavac
Note: Some input files use or override a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
Note: Some input files use unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.

> Task :app:checkDebugDuplicateClasses
> Task :app:desugarDebugFileDependencies
> Task :app:dexBuilderDebug
> Task :app:mergeDebugJniLibFolders
> Task :app:mergeDebugNativeLibs NO-SOURCE
> Task :app:stripDebugDebugSymbols NO-SOURCE
> Task :app:validateSigningDebug
> Task :app:writeDebugAppMetadata
> Task :app:writeDebugSigningConfigVersions
> Task :app:assembleDebugUnitTest UP-TO-DATE
> Task :app:mergeDexDebug
> Task :app:packageDebug
> Task :app:createDebugApkListingFileRedirect
> Task :app:assembleDebug
> Task :app:preDebugAndroidTestBuild SKIPPED
> Task :app:compileDebugAndroidTestAidl NO-SOURCE
> Task :app:javaPreCompileDebugAndroidTest
> Task :app:checkDebugAndroidTestAarMetadata
> Task :app:generateDebugAndroidTestResValues
> Task :app:mapDebugAndroidTestSourceSetPaths
> Task :app:generateDebugAndroidTestResources
> Task :app:mergeDebugAndroidTestResources
> Task :app:processDebugAndroidTestManifest
> Task :app:bundleDebugClassesToCompileJar
> Task :app:mergeDebugAndroidTestShaders
> Task :app:compileDebugAndroidTestShaders NO-SOURCE
> Task :app:generateDebugAndroidTestAssets UP-TO-DATE
> Task :app:mergeDebugAndroidTestAssets
> Task :app:compressDebugAndroidTestAssets
> Task :app:processDebugAndroidTestJavaRes NO-SOURCE
> Task :app:processDebugAndroidTestResources
> Task :app:mergeDebugAndroidTestJavaResource

> Task :app:compileDebugAndroidTestJavaWithJavac
Note: /{project path}/myapp/android/target/myapp-android-1.0-SNAPSHOT-android-source/app/src/androidTest/java/com/example/myapplication2/ExampleInstrumentedTest.java uses or overrides a deprecated API.
Note: Recompile with -Xlint:deprecation for details.

> Task :app:mergeDebugAndroidTestJniLibFolders
> Task :app:mergeDebugAndroidTestNativeLibs NO-SOURCE
> Task :app:checkDebugAndroidTestDuplicateClasses
> Task :app:desugarDebugAndroidTestFileDependencies
> Task :app:dexBuilderDebugAndroidTest
> Task :app:validateSigningDebugAndroidTest
> Task :app:writeDebugAndroidTestSigningConfigVersions
> Task :app:mergeDexDebugAndroidTest
> Task :app:packageDebugAndroidTest
> Task :app:createDebugAndroidTestApkListingFileRedirect
> Task :app:assembleDebugAndroidTest

Deprecated Gradle features were used in this build, making it incompatible with Gradle 9.0.

You can use '--warning-mode all' to show the individual deprecation warnings and determine if they come from your own scripts or plugins.

See https://docs.gradle.org/8.1/userguide/command_line_interface.html#sec:command_line_warnings

BUILD SUCCESSFUL in 3m 13s
51 actionable tasks: 51 executed

Build Analyzer results available


Solution

  • As far as I recall these existed for older versions too.

    These are just warnings and should have no impact on the code. We hope to resolve them as part of our ongoing quality work but increasing test coverage is a higher priority at this time.