javah错误:gradle和Android Studio不存在该程序包

one音

最近在编译Java源代码以产生C ++标头时javah遇到package does not exist错误:为某些文件吐出错误。

tl; dr: javah适用于Java源代码,但不适用于其他Java源代码–哪些import子句非常接近;gradle不会处理某些库,但是即使已处理的程序包也被标记为丢失。


我不知道为什么javah会开始吐出该错误,因为直到最近它都运行良好,并且我没有更改任何特殊内容。我正在使用gradleAndroid Studio的gradle-wrapper我最近将包装器的发行版从2.2.1更新到2.10,但是我不认为这就是javah现在失败的原因。

根据日志和当前文件,javah在编译时ClassB从我正在使用的库中找到包,但未找到ClassA

让我们举两个例子:com.batch.androidcom.adjust.sdk

  • com.batch.android图书馆得到由gradle这个处理,使得其瓶子我的build/intermediates/exploded-aar文件夹(在com.batch.android/batch-sdk/1.5.3/jars/classes.jar和com.batch.android/batch-sdk/1.5.3/jars /libs/batch.jar)
  • com.adjust.sdkgradle无法处理,因此其jar不在我的build / intermediates / exploded-aar中
  • 两者都在我的〜/ .gradle / cache /文件夹中
  • 这两个软件包都因javah丢失而失败
  • 这两个包都没有进口ClassAClassBjava文件

谢谢你的帮助!


gradle日志(对不起,这太长了):

Executing tasks: [:app:clean, :app:generateDevAmazonDebugSources, :app:generateDevAmazonDebugAndroidTestSources, :app:mockableAndroidJar, :app:prepareDevAmazonDebugUnitTestDependencies,     :app:assembleDevAmazonDebug]

Configuration on demand is an incubating feature.
:buildSrc:compileJava UP-TO-DATE
:buildSrc:compileGroovy UP-TO-DATE
:buildSrc:processResources UP-TO-DATE
:buildSrc:classes UP-TO-DATE
:buildSrc:jar UP-TO-DATE
:buildSrc:assemble UP-TO-DATE
:buildSrc:compileTestJava UP-TO-DATE
:buildSrc:compileTestGroovy UP-TO-DATE
:buildSrc:processTestResources UP-TO-DATE
:buildSrc:testClasses UP-TO-DATE
:buildSrc:test UP-TO-DATE
:buildSrc:check UP-TO-DATE
:buildSrc:build UP-TO-DATE
Generating assets binaries
Incremental java compilation is an incubating feature.
Cleaning project...
:app:clean
:app:processAssets
:app:copyFiles
:app:preBuild
:app:preDevAmazonDebugBuild
:app:checkDevAmazonDebugManifest
:app:preDevAmazonReleaseBuild
:app:preDevGoogleDebugBuild
:app:preDevGoogleReleaseBuild
:app:preProdAmazonDebugBuild
:app:preProdAmazonReleaseBuild
:app:preProdGoogleDebugBuild
:app:preProdGoogleReleaseBuild
:app:prepareComAndroidSupportAppcompatV72311Library
:app:prepareComAndroidSupportCardviewV72320Library
:app:prepareComAndroidSupportMediarouterV72220Library
:app:prepareComAndroidSupportMultidex100Library
:app:prepareComAndroidSupportRecyclerviewV72311Library
:app:prepareComAndroidSupportSupportV42320Library
:app:prepareComBatchAndroidBatchSdk153Library
:app:prepareComCrashlyticsSdkAndroidAnswers136Library
:app:prepareComCrashlyticsSdkAndroidBeta114Library
:app:prepareComCrashlyticsSdkAndroidCrashlytics255Library
:app:prepareComCrashlyticsSdkAndroidCrashlyticsCore238Library
:app:prepareComCrashlyticsSdkAndroidCrashlyticsNdk112Library
:app:prepareComFacebookAndroidFacebookAndroidSdk4101Library
:app:prepareComGoogleAndroidExoplayerExoplayerR142Library
:app:prepareComGoogleAndroidGmsPlayServices780Library
:app:prepareComGoogleAndroidGmsPlayServicesAds780Library
:app:prepareComGoogleAndroidGmsPlayServicesAnalytics780Library
:app:prepareComGoogleAndroidGmsPlayServicesAppindexing780Library
:app:prepareComGoogleAndroidGmsPlayServicesAppinvite780Library
:app:prepareComGoogleAndroidGmsPlayServicesAppstate780Library
:app:prepareComGoogleAndroidGmsPlayServicesBase780Library
:app:prepareComGoogleAndroidGmsPlayServicesCast780Library
:app:prepareComGoogleAndroidGmsPlayServicesDrive780Library
:app:prepareComGoogleAndroidGmsPlayServicesFitness780Library
:app:prepareComGoogleAndroidGmsPlayServicesGames780Library
:app:prepareComGoogleAndroidGmsPlayServicesGcm780Library
:app:prepareComGoogleAndroidGmsPlayServicesIdentity780Library
:app:prepareComGoogleAndroidGmsPlayServicesLocation780Library
:app:prepareComGoogleAndroidGmsPlayServicesMaps780Library
:app:prepareComGoogleAndroidGmsPlayServicesNearby780Library
:app:prepareComGoogleAndroidGmsPlayServicesPanorama780Library
:app:prepareComGoogleAndroidGmsPlayServicesPlus780Library
:app:prepareComGoogleAndroidGmsPlayServicesSafetynet780Library
:app:prepareComGoogleAndroidGmsPlayServicesVision780Library
:app:prepareComGoogleAndroidGmsPlayServicesWallet780Library
:app:prepareComGoogleAndroidGmsPlayServicesWearable780Library
:app:prepareComMopubMopubSdk440Library
:app:prepareComZendeskBelvedere1011Library
:app:prepareComZendeskSdk1512Library
:app:prepareComZendeskSdkProviders1512Library
:app:prepareIoBranchSdkAndroidLibrary1112Library
:app:prepareIoFabricSdkAndroidFabric1310Library
:app:prepareDevAmazonDebugDependencies
:app:compileDevAmazonDebugAidl
:app:compileDevAmazonDebugRenderscript
:app:generateDevAmazonDebugBuildConfig
:app:generateDevAmazonDebugAssets UP-TO-DATE
:app:mergeDevAmazonDebugAssets
:app:processDevAmazonDebugManifest
:app:fabricGenerateResourcesDevAmazonDebug
:app:generateDevAmazonDebugResValues UP-TO-DATE
:app:processDevAmazonDebugGoogleServices
:app:generateDevAmazonDebugResources
:app:mergeDevAmazonDebugResources
:app:processDevAmazonDebugResources
:app:generateDevAmazonDebugSources
:app:preDevAmazonDebugAndroidTestBuild
:app:prepareDevAmazonDebugAndroidTestDependencies
:app:compileDevAmazonDebugAndroidTestAidl
:app:processDevAmazonDebugAndroidTestManifest
:app:compileDevAmazonDebugAndroidTestRenderscript
:app:generateDevAmazonDebugAndroidTestBuildConfig
:app:generateDevAmazonDebugAndroidTestAssets UP-TO-DATE
:app:mergeDevAmazonDebugAndroidTestAssets
:app:generateDevAmazonDebugAndroidTestResValues UP-TO-DATE
:app:generateDevAmazonDebugAndroidTestResources
:app:mergeDevAmazonDebugAndroidTestResources
:app:processDevAmazonDebugAndroidTestResources
:app:generateDevAmazonDebugAndroidTestSources
:app:mockableAndroidJar UP-TO-DATE
:app:preDevAmazonDebugUnitTestBuild
:app:prepareDevAmazonDebugUnitTestDependencies
:app:javahBuild_ClassA
:app:javahBuild_ClassB
Error: package com.adjust.sdk does not exist
Error: package com.adjust.sdk does not exist
Error: package com.amazon.ags.api does not exist
Error: package com.batch.android does not exist
Error: package com.batch.android does not exist
Error: package com.crashlytics.android does not exist
Error: package com.crashlytics.android.answers does not exist
Error: package com.crashlytics.android.answers does not exist
Error: package com.crashlytics.android.answers does not exist
Error: package com.mopub.common does not exist
Error: package com.zendesk.sdk.feedback.impl does not exist
Error: package com.zendesk.sdk.model.access does not exist
Error: package com.zendesk.sdk.model.access does not exist
Error: package com.zendesk.sdk.model.push does not exist
Error: package com.zendesk.sdk.network.impl does not exist
Error: package com.zendesk.sdk.network.impl does not exist
Error: package com.zendesk.sdk.network.impl does not exist
Error: package com.zendesk.sdk.network.impl does not exist
Error: package com.zendesk.sdk.network.impl does not exist
Error: package com.zendesk.sdk.requests does not exist
Error: package com.zendesk.sdk.storage does not exist
Error: package com.zendesk.sdk.support does not exist
Error: package com.zendesk.service does not exist
Error: package com.zendesk.service does not exist
Error: package org.joda.time does not exist
Error: package org.joda.time does not exist
Error: package org.joda.time does not exist
Error: package org.joda.time does not exist
Error: package org.joda.time.format does not exist
Error: package org.joda.time.format does not exist
Error: package io.branch.indexing does not exist
Error: package io.branch.referral does not exist
Error: package io.branch.referral does not exist
Error: package io.branch.referral does not exist
Error: package io.branch.referral.util does not exist
Error: package io.branch.referral.util does not exist
Error: package com.adjust.sdk does not exist
Error: package com.amazon.ags.api does not exist
Error: package com.amazon.ags.api does not exist
Error: package com.amazon.ags.api does not exist
Error: package com.amazon.ags.api does not exist
Error: package com.applovin.sdk does not exist
Error: package com.batch.android does not exist
Error: package com.crashlytics.android does not exist
Error: package com.crashlytics.android.ndk does not exist
Error: package io.branch.referral does not exist
Error: package io.branch.referral does not exist
Error: package io.fabric.sdk.android does not exist
Error: package com.google.android.gms.analytics does not exist
Error: package com.google.android.gms.analytics does not exist
Error: package com.google.android.gms.analytics does not exist
Error: package com.google.android.gms.ads.identifier does not exist
Error: package com.google.android.gms.common does not exist
Error: package com.mopub.common does not exist
Error: package com.mopub.common does not exist
Error: cannot find symbol
  symbol:   class MoPubErrorCode
  location: package com.mopub.mobileads
Error: cannot find symbol
  symbol:   class MoPubRewardedVideoListener
  location: package com.mopub.mobileads
Error: package com.chartboost.sdk does not exist
Error: package com.adjust.sdk does not exist
Error: package com.adjust.sdk does not exist
Error: package com.adjust.sdk does not exist
Error: package com.adjust.sdk does not exist
Error: cannot find symbol
  symbol:   class BaseZendeskFeedbackConfiguration
  location: class my.super.project.Renderer
Error: cannot find symbol
  symbol:   class BuildConfig
  location: package my.super.project
Error: cannot find symbol
  symbol:   class Tracker
  location: class my.super.project.Main
Error: ';' expected
Error: package com.facebook does not exist
Error: package com.facebook does not exist
Error: package com.facebook does not exist
Error: package com.facebook does not exist
Error: package com.facebook does not exist
Error: package com.facebook does not exist
Error: package com.facebook does not exist
Error: package com.facebook does not exist
Error: package com.facebook does not exist
Error: package com.facebook does not exist
Error: package com.facebook.appevents does not exist
Error: package com.facebook.login does not exist
Error: package com.facebook.login does not exist
Error: package com.facebook.share.model does not exist
Error: package com.facebook.share.model does not exist
Error: package com.facebook.share.model does not exist
Error: package com.facebook.share.widget does not exist
Error: package com.facebook.share.widget does not exist
Error: package com.facebook.share.widget does not exist
Error: package twitter4j does not exist
Error: package twitter4j does not exist
Error: package twitter4j does not exist
Error: package twitter4j does not exist
Error: package twitter4j does not exist
Error: package twitter4j does not exist
Error: package twitter4j does not exist
Error: package twitter4j does not exist
Error: package twitter4j.auth does not exist
Error: cannot find symbol
  symbol:   class R
  location: package my.super.project
Error: cannot find symbol
  symbol:   class AmazonGamesClient
  location: class my.super.project.Main
Error: cannot find symbol
  symbol:   class MoPubRewardedVideoListener
  location: class my.super.project.Main
Error: cannot find symbol
  symbol:   class ChartBoostDelegate
  location: class my.super.project.Main
Error: cannot find symbol
  symbol:   class CallbackManager
  location: class my.super.project.ClassA
Error: cannot find symbol
  symbol:   class ProfileTracker
  location: class my.super.project.ClassA

 FAILED

FAILURE: Build failed with an exception.

build.gradle的任务如下:

android {
    <snip>
    ['Main', 'Renderer', 'ClassA', 'ClassB'].each {
        def targetName ->
            tasks.create(name: "javahBuild_$targetName", type: Exec) {
                Properties properties = new Properties()
                properties.load(project.rootProject.file('local.properties').newDataInputStream())
                String sdkDir = properties.getProperty('sdk.dir')
                String flavorFolder = getCurrentFlavorFolder()
                commandLine 'javah', '-classpath', "libs/:src/main/java/:$sdkDir/platforms/android-23/android.jar:build/intermediates/classes/$flavorFolder/$config:$sdkDir/platforms/android-23/optional/org.apache.http.legacy.jar/:$config/", '-d', 'src/main/jni/Main/', "my.super.project.${targetName}"
            }
    }

    task javahBuildAll(dependsOn: tasks.matching { Task task -> task.name.startsWith("javahBuild_") })

    tasks.withType(JavaCompile) {
        compileTask -> compileTask.dependsOn javahBuildAll
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: '*.jar')

    compile('com.crashlytics.sdk.android:crashlytics:2.5.5@aar') {
        transitive = true;
    }
    compile('com.crashlytics.sdk.android:crashlytics-ndk:1.1.2@aar') {
        transitive = true
    }
    compile('com.mopub:mopub-sdk:4.4.0@aar') {
        transitive = true
    }

    compile group: 'com.zendesk', name: 'sdk', version: '1.5.1.2'

    compile('com.android.support:multidex:1.0.0')
    compile('com.google.android.gms:play-services:7.8.0')
    compile('com.google.android.gms:play-services-analytics:7.8.0')
    compile('com.google.android.gms:play-services-gcm:7.8.0')
    compile('com.android.support:appcompat-v7:23.1.0')
    compile('com.android.support:support-v4:23.1.0')
    compile('com.facebook.android:facebook-android-sdk:4.10.+')
    compile('io.branch.sdk.android:library:1.+')
    compile('com.batch.android:batch-sdk:1.5+')
    compile('com.adjust.sdk:adjust-android:4.2.3')
    compile('joda-time:joda-time:2.9.2')
}
one音

好的,它不明白为什么会出现这些错误,但我只是意识到我可以忽略它们,因为C ++头文件仍在生成。

因此,我决定修改javahgradle任务以忽略错误,并将这些错误写入专用的日志文件中。我添加了以下行:

errorOutput = project.file("build/javah_error_${targetName}.log").newDataOutputStream()
ignoreExitValue = true

我的javah任务现在看起来像这样:

['Main', 'Renderer', 'ClassA', 'ClassB'].each {
    def targetName ->
        tasks.create(name: "javahBuild_$targetName", type: Exec) {
            Properties properties = new Properties()
            properties.load(project.rootProject.file('local.properties').newDataInputStream())
            String sdkDir = properties.getProperty('sdk.dir')
            String flavorFolder = getCurrentFlavorFolder()
            errorOutput = project.file("build/javah_error_${targetName}.log").newDataOutputStream()
            ignoreExitValue = true
            commandLine 'javah', '-classpath', "libs/:src/main/java/:$sdkDir/platforms/android-23/android.jar:build/intermediates/classes/$flavorFolder/$config:$sdkDir/platforms/android-23/optional/org.apache.http.legacy.jar/:$config/", '-d', 'src/main/jni/Main/', "my.super.project.${targetName}"
        }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Android Studio-错误:程序包java.awt.geom不存在

来自分类Dev

取销Java模块Android Studio 1.0.1时,程序包不存在

来自分类Dev

取销Java模块Android Studio 1.0.1时,程序包不存在

来自分类Dev

错误:程序包javax.mail不存在

来自分类Dev

错误:程序包GooglePlayServicesClient不存在

来自分类Dev

错误:程序包androidx.work不存在

来自分类Dev

错误:程序包javax.mail不存在

来自分类Dev

Android项目的Maven编译错误“错误:程序包R不存在”

来自分类Dev

错误“程序包android.support.v7.app不存在”

来自分类Dev

我的IDE无法找到我已导入的库。错误:“程序包不存在”

来自分类Dev

JDK9上的“程序包java.net.http不存在”错误

来自分类Dev

如何避免“程序包不存在” Java中的错误

来自分类Dev

从Eclipse ADT迁移到Android Studio 2.1-错误:程序包android.support.v4.view不存在

来自分类Dev

Android Studio编译并构建ViewPagerIndicator,但表示程序包在运行时不存在

来自分类Dev

错误:程序包R不存在,如何在使用命令行时进行调试

来自分类Dev

“错误:程序包com.google.firebase.iid不存在”更新Firebase Crashlytics依赖项后

来自分类Dev

Android Studio导入库Gradle:错误:包org.simpleframework.xml不存在

来自分类Dev

导入编译为jar的程序包:错误的类文件,类文件包含错误的类,并且包不存在错误

来自分类Dev

包org.apache.cordova android studio不存在

来自分类Dev

用gradle将roboelectric与android studio集成总是会给org.junit包不存在错误

来自分类Dev

Android Studio导入错误的程序包

来自分类Dev

错误:Android Studio项目中不存在com.facebook.android包

来自分类Dev

Android Studio错误:包com.android.vending.billing.util不存在

来自分类Dev

Android Studio错误:包com.android.vending.billing.util不存在

来自分类Dev

Android Studio 2.1:错误:包org.junit不存在

来自分类Dev

错误:软件包org.hamcrest不存在Android Studio 1.5.1

来自分类Dev

Deborphan 返回不存在的包 - 错误?

来自分类Dev

Android数据绑定:包不存在

来自分类Dev

出现DistributionNotFound错误,但程序包存在

Related 相关文章

  1. 1

    Android Studio-错误:程序包java.awt.geom不存在

  2. 2

    取销Java模块Android Studio 1.0.1时,程序包不存在

  3. 3

    取销Java模块Android Studio 1.0.1时,程序包不存在

  4. 4

    错误:程序包javax.mail不存在

  5. 5

    错误:程序包GooglePlayServicesClient不存在

  6. 6

    错误:程序包androidx.work不存在

  7. 7

    错误:程序包javax.mail不存在

  8. 8

    Android项目的Maven编译错误“错误:程序包R不存在”

  9. 9

    错误“程序包android.support.v7.app不存在”

  10. 10

    我的IDE无法找到我已导入的库。错误:“程序包不存在”

  11. 11

    JDK9上的“程序包java.net.http不存在”错误

  12. 12

    如何避免“程序包不存在” Java中的错误

  13. 13

    从Eclipse ADT迁移到Android Studio 2.1-错误:程序包android.support.v4.view不存在

  14. 14

    Android Studio编译并构建ViewPagerIndicator,但表示程序包在运行时不存在

  15. 15

    错误:程序包R不存在,如何在使用命令行时进行调试

  16. 16

    “错误:程序包com.google.firebase.iid不存在”更新Firebase Crashlytics依赖项后

  17. 17

    Android Studio导入库Gradle:错误:包org.simpleframework.xml不存在

  18. 18

    导入编译为jar的程序包:错误的类文件,类文件包含错误的类,并且包不存在错误

  19. 19

    包org.apache.cordova android studio不存在

  20. 20

    用gradle将roboelectric与android studio集成总是会给org.junit包不存在错误

  21. 21

    Android Studio导入错误的程序包

  22. 22

    错误:Android Studio项目中不存在com.facebook.android包

  23. 23

    Android Studio错误:包com.android.vending.billing.util不存在

  24. 24

    Android Studio错误:包com.android.vending.billing.util不存在

  25. 25

    Android Studio 2.1:错误:包org.junit不存在

  26. 26

    错误:软件包org.hamcrest不存在Android Studio 1.5.1

  27. 27

    Deborphan 返回不存在的包 - 错误?

  28. 28

    Android数据绑定:包不存在

  29. 29

    出现DistributionNotFound错误,但程序包存在

热门标签

归档