2017-08-30 66 views
8

Android TV uygulamasını Android Studio'ya taşımaya çalışıyorum, bunu derlemeye çalıştığımda bazı ithalat hataları yaptım, yapamayacağım bağımlılığı bulamadım Bu sorunu gidermek için .gradleto. ithalatta aşağıda sunulduğu gibidir:android.media.tv için bağımlılık nedir

import android.media.tv.TvContentRatingSystemInfo; 
import android.media.tv.TvContract.WatchedPrograms; 
import com.android.tv.tuner.data.nano.Track.AtscCaptionTrack; 
import com.android.tv.tuner.data.nano.Track.AtscAudioTrack; 
import com.android.tv.tuner.data.nano.Channel; 

build.grdle geçerli:

apply plugin: 'com.android.application' 

android { 
compileSdkVersion 26 
buildToolsVersion "26.0.1" 

defaultConfig { 
    applicationId "com.android.tv" 
    minSdkVersion 23 
    targetSdkVersion 23 
    versionCode 1 
    versionName "1.0" 

    ndk { 
     moduleName "libtunertvinput_jni" 
    } 
} 
sourceSets { 
    main { 
     res.srcDirs = ['src/main/res', 'src/main/usbtuner-res'] 
     jni.srcDirs = [] 
    } 
} 
buildTypes { 
    release { 
     minifyEnabled false 
     proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt' 
    } 
    debug { 
     minifyEnabled false 
     proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt' 
    } 
} 
} 

dependencies { 
compile fileTree(dir: 'libs', include: ['*.jar']) 
compile files('libs/exoplayer.jar') 
compile project(':common') 
compile 'com.android.support:palette-v7:+' 
compile 'com.android.support:support-v4:+' 
compile 'com.android.support:support-annotations:+' 
} 
+0

Bu davranışla github'da basit bir proje yayınlayabilir misiniz? – azizbekian

cevap

1

Bunları @SystemApi ek açıklamaları olduğundan içe aktaramazsınız. TvContentRatingSystemInfo kaynak kodu için this'u kontrol edebilirsiniz. Ayrıca WatchedPrograms'u da kontrol ettim ve ayrıca @SystemApi ek açıklamaları var. Diğer üçünü kontrol etmedim.

Bunlara erişmek için sistem uygulaması olmanız gerekir. here'u gördüğünüz gibi, uygulamanızı \system\ klasörüne göndermeniz gerekir. AOSP yapı sistemi here hakkında ayrıntılı bilgileri bulabilirsiniz.

Çözüm: Değişen senin sistem API erişebilmeniz gereken bu github yılında .jar için android.jar. Nedeni, standart android.jar sistem API'sine sahip değil. Bu nedenle, framework.jar (adb pull numaralı telefondan) emülatörden almanız ve core.jar ile birleştirmeniz gerekiyor, daha sonra sistem API'sini içeren yeni android.jar'a sahip olabilirsiniz (sistem metodları ve sınıfları emülatörden framework.jar'da mevcuttur). Ayrıca, bazı sistem API'larına erişmek için APK'nızı \system\priv-app\ klasörüne zorlamanız gerekir, ancak bu github hesabından .jar kullandığımda, APK'mı neden \system\priv-app\'a göndermeden sistem API'sına erişebildiğimi bilmiyorum.

Çok açık bir şekilde yazmıyorum gibi hissediyorum, ama en azından şu anda karşı karşıya olduğunuz şeylerin daha fazla anlayış.

0

android.media.tv ve com.android.tv Android SDK parçasıdır. Bu nedenle, gradle.build dosyasında ek kitaplıklar eklemeniz gerekmez.

Update your SDK tools to version 24.0.0 or higher

ve

Update your SDK with Android 5.0 (API 21) or higher

Örnek, senin bağımlılıkları

android { 
     compileSdkVersion 26 
     buildToolsVersion "26.0.1" 
     defaultConfig { 
      applicationId "com.example.tvapp" 
      minSdkVersion 15 
      targetSdkVersion 26 
      versionCode 1 
      versionName "1.0" 
     } 
} 
+0

android platform sürümü: API 26 androi SDK Araçları: 26.0.02 fakat yine de çalışmıyor – MRM

+0

Dosya> Önbellek/Yeniden Başlatmayı Geçersizleştirdiniz mi? Ayrıca, build.gradle dosyalarınızı hem uygulamanızı hem de modülünüzü gönderin. @MRM –

+0

evet Yaptım, gradyanı ana soruya ekliyorum – MRM

0

kullanımı bu "com.android.support:support:

Sadece emin yapmak -media-compat: 26.0.2 "

ve ayrıca araç sürümü veya uygulama seviyesi gradle içinde bağımlılıkları ekleyebilir 26.

0

"26.0.1"

derlenmiş SDK sürümü kullanın.

compile 'com.google.android.libraries.tv:companionlibrary:0.1'