2017-04-26 4 views
0

私はAndroidデベロッパーにとって新しく、複数のAPIの開発にいくつかの問題があります。プロジェクトを作成したとき、最小APIレベルを18に設定しました(wikiによると:https://en.wikipedia.org/wiki/Android_version_historyAndroid AppはAPI 24でインストールされますが、API 19では使用できません(ジャックツールチェインの問題?)

APKのインストールを2台の異なる電話機でテストしました。いずれもAPI 24、問題はなかった。ただし、API 19を使用している私のアソシエートはアプリケーションをインストールできません。どうやら、それは彼に "App not installed"という有益なエラーを与えたようだ。

テスト目的のために、私は新しいプロジェクトを作成し、コードを追加せずに(Android Studioの生成された「Hello World」ラベルのみ残して)、署名されたAPKを生成してから、彼はそれをインストールすることもできませんでした。

もう一つ注目すべきは、「ジャック」を有効にして遊んだことだけでした。私はそれを必要とするいくつかのランダムなソースコードをテストしていました。それが問題の原因になるのだろうか?それは空のプロジェクトでは信じがたいです。

具体的には、上記のソースコードをテストするときに「エラー:ジャックがJava 8言語機能をサポートする必要があります。ジャックを有効にするか、sourceCompatibility JavaVersion.VERSION_1_8を削除してください。だからもちろん、私はジャックを有効にしました。任意の考えが高く評価されている(それは場合に役立ちます?)

apply plugin: 'com.android.application' 

android { 
    compileSdkVersion 25 
    buildToolsVersion "25.0.2" 
    defaultConfig { 
     applicationId "com.random.name" 
     minSdkVersion 18 
     targetSdkVersion 25 
     versionCode 1 
     versionName "1.0" 
     testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" 
    } 
    buildTypes { 
     release { 
      minifyEnabled false 
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
     } 
    } 
} 

dependencies { 
    compile fileTree(dir: 'libs', include: ['*.jar']) 
    androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', { 
     exclude group: 'com.android.support', module: 'support-annotations' 
    }) 
    compile 'com.android.support:appcompat-v7:25.3.1' 
    compile 'com.android.support.constraint:constraint-layout:1.0.2' 
    testCompile 'junit:junit:4.12' 
} 

ここ

はbuild.gradleです!もししかしhttps://developer.android.com/guide/platform/j8-jack.html

:あなたのプロジェクトでJava 8を使用しようとしているよう

+0

AndroidStudio内では?それでもうまくいかない場合は、より詳細なエラーメッセージが表示されることがあります。 – drawinfinity

+0

@drawinfinity短く - いいえ。彼は最近Android Studioをアンインストールしましたが、私は既にAndroid Studioを再インストールするよう促しています。あなたが言ったように、生成されたエラーコードは多くの助けになります! – FoxDonut

+0

警告、ジャックは正式にgoogleによって廃止されました:http://tools.android.com/tech-docs/jackandjill –

答えて

1

が見える、Javaの8は、APIレベルでは動作しません。18また、あなたはその

ソースのジャックツールチェーンを有効にする必要がありますあなたはそれからだけではなく、Javaの8のJavaの7にあなたのGradleファイルのソース互換性を変更する、任意のJava 8の機能を使用していない場合は、あなたが今のところのGradle https://github.com/evant/gradle-retrolambda

でretrolambdaを使用できるJava 8つの機能を使用したいとそれは正常に動作するはずです。

使用この

compileOptions { 
sourceCompatibility JavaVersion.VERSION_1_7 
targetCompatibility JavaVersion.VERSION_1_7 
} 

代わりの

compileOptions { 
sourceCompatibility JavaVersion.VERSION_1_8 
targetCompatibility JavaVersion.VERSION_1_8 
} 

それはのようなあなたのGradleファイルに貼り付けることができます:あなたの同僚からアプリケーションを実行しようとした、

好奇心のうち
android { 
... 
defaultConfig { 
... 

} 
compileOptions { 
    sourceCompatibility JavaVersion.VERSION_1_8 
    targetCompatibility JavaVersion.VERSION_1_8 
} 
} 
+0

私の問題は、私の "build.gradle"ファイルがcompileOptionsを表示していないようだったと思います。ちょっと変だ! Android Studioの再インストールが終了しましたが、バージョン1.8を追加してテストしましたが、これはジャックをインストールするよう求めていました。私はそれを1.7に変更したとき、何も言わなかったし、Gradleをリフレッシュするように頼まなかった。つまり、Android Studioでは自動的に1.7が設定されます。 返信いただきありがとうございます、私はこれを受け入れるでしょう! – FoxDonut

関連する問題